列表理解总是安全吗?

时间:2016-12-10 09:26:01

标签: python-3.x list-comprehension

我正在使用Python3,我想知道如果列表理解总是安全的。

例如:

mylist = ["string1", "string2", "foo", "bar"]
# I want to remove all items with "string" substring:
pattern_to_rm = "string"
mylist = [ item for item in mylist if pattern_to_rm not in item ]
# print(mylist) = ["foo", "bar"]

我是否可以通过这种方式遇到一些问题(因为我在迭代时更改输入列表大小)?我需要复制什么吗? mylist永远不会是一个巨大的列表,但包含非常重要的数据。

任何帮助或建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

此代码在迭代时不会更改列表大小。它从过滤的项目构建新列表,然后将mylist引用重新分配给新列表。这是安全的,你不需要复制或任何东西。