从列表到其他列表的Python项:奇怪的结果

2024-04-23 19:57:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将项目从一个列表转移到另一个列表(如下所示),但结果确实令人费解。有人知道这里发生了什么吗??你知道吗

l1=range(1,11)
l2=[]
for i in l1:
    if i>=6:
        l2.append(i)
        l1.remove(i)
print l1
print l2

l1 = [1-5, 7, 9] # and
l2 = [6, 8, 10]  # !!

Tags: and项目inl1列表forifrange
2条回答

问题是由于您正在修改正在迭代的列表。你知道吗

如果你这样搜索,你会发现一些关于这个的帖子。例如Modifying list while iteratingPython: Removing list element while iterating over list

不应该修改正在迭代的列表,否则会得到奇怪的结果。就像割你坐的树枝一样。基于l1创建两个列表怎么样?你知道吗

big = [x for x in l1 if x >= 6]
small = [x for x in l1 if x < 6]

更好的是,如果您关心性能:

big = []
small = []

for item in l1:
    if item >= 6:
        big.append(item)
    else:
        small.append(item)

相关问题 更多 >