5

以下安全吗?

x = [1, 2, 3, 4]
x = [y+5 for y in x]

列表理解是否首先评估,创建一个新列表,然后将该新列表分配给 x?有人告诉我,在迭代列表时更改列表是不安全的操作。

4

2 回答 2

5

您在迭代列表时不会更改列表,而是在创建一个全新的列表,然后在对其进行评估后,将其绑定到名称x,因此一切都是安全的。

于 2013-04-16T03:34:39.083 回答
3

是的,很安全。

正如您所暗示的,首先评估右侧,然后将其结果(一个全新的列表)分配给 name x。您是对的,在迭代列表时更改列表是不安全的,但这不会发生在您的代码示例中,所以不用担心。

于 2013-04-16T03:35:55.410 回答