您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在列表之间移动Python元素

在列表之间移动Python元素

您不应该修改要迭代的列表,这会导致令人惊讶的行为(因为迭代器在内部使用索引,并且这些索引通过删除元素来更改)。你可以做的是要遍历一个 复制listA

for i in listA[:]:
  if i >= 2:
    listB.append(i)
    listA.remove(i)

例:

>>> listA = [1,2,3]
>>> listB = []
>>> for i in listA[:]:
...   if i >= 2:
...     listB.append(i)
...     listA.remove(i)
... 
>>> listA
[1]
>>> listB
[2, 3]

但是,采用功能方法通常根本不修改原始列表,而是仅创建具有所需值的新列表通常会更清洁。您可以使用列表推导来优雅地做到这一点:

>>> lst = [1,2,3]
>>> small = [a for a in lst if a < 2]
>>> big = [a for a in lst if a >= 2]
>>> small
[1]
>>> big
[2, 3]
python 2022/1/1 18:52:31 有316人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶