【发布时间】:2015-04-23 15:38:34
【问题描述】:
我想切换列表的每个第二个元素:
s = [False] * 5
for item in s[::2]:
item = not item
print(s)
但它不起作用。
[False, False, False, False, False]
但是,这按预期工作:
for i in range(0, len(s), 2):
s[i] = not s[i]
print(s)
[True, False, True, False, True]
为什么会这样?
【问题讨论】:
-
因为
item是一个不同于list[i]的变量,它恰好包含相同的内容(因为for循环分配给item)。分配给item不会改变list