小编Car*_*HSF的帖子

将排序列表拆分为两个列表

我正在尝试将已排序的整数列表拆分为两个列表。第一个列表将包含以下所有整数n,第二个列表将包含所有以上整数n。请注意,n不一定要在原始列表中。

我可以轻松地做到这一点:

under = []
over  = []
for x in sorted_list:
    if x < n:
        under.append(x)
    else
        over.append(x)
Run Code Online (Sandbox Code Playgroud)

但似乎应该可以以更优雅的方式执行此操作,因为知道列表已排序。从itertoolstakewhile来看,这听起来像是解决方案,但随后我会迭代列表两次。dropwhile

从功能上来说,我能做的最好的就是:

i = 0
while sorted_list[i] < n:
    i += 1

under = sorted_list[:i]
over = sorted_list[i:]
Run Code Online (Sandbox Code Playgroud)

但我什至不确定它是否真的比仅仅迭代列表两次更好,而且绝对不是更优雅。

我想我正在寻找一种方法来获取返回的列表takewhile和剩余的列表,也许,成对出现。

python split list sortedlist

4
推荐指数
1
解决办法
968
查看次数

标签 统计

list ×1

python ×1

sortedlist ×1

split ×1