2024-04-23 19:57:01 发布
网友
我试图将项目从一个列表转移到另一个列表(如下所示),但结果确实令人费解。有人知道这里发生了什么吗??你知道吗
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] # !!
问题是由于您正在修改正在迭代的列表。你知道吗
如果你这样搜索,你会发现一些关于这个的帖子。例如Modifying list while iterating、Python: Removing list element while iterating over list等
不应该修改正在迭代的列表,否则会得到奇怪的结果。就像割你坐的树枝一样。基于l1创建两个列表怎么样?你知道吗
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)
问题是由于您正在修改正在迭代的列表。你知道吗
如果你这样搜索,你会发现一些关于这个的帖子。例如Modifying list while iterating、Python: Removing list element while iterating over list等
不应该修改正在迭代的列表,否则会得到奇怪的结果。就像割你坐的树枝一样。基于
l1
创建两个列表怎么样?你知道吗更好的是,如果您关心性能:
相关问题 更多 >
编程相关推荐