以下是否安全?
x = [1, 2, 3, 4]
x = [y+5 for y in x]
列表推导是否先评估,创建新列表,然后将新列表分配给x? 有人告诉我,在迭代它时更改列表是一种不安全的操作。
答案 0 :(得分:5)
您在迭代列表时没有更改列表,您正在创建一个完全新列表,然后在对其进行评估后,您将其绑定到名称{{1}所以一切都很安全。
答案 1 :(得分:3)
是的,这很安全。
正如您所暗示的那样,首先评估右侧,然后将其结果(一个全新的列表)分配给名称x
。你在迭代它时更改列表是不安全的,但是你的代码示例中没有这样做,所以不用担心。