如果你想把一个列表的所有变量都改成相同的数字,使用列表理解--你基本上是在创建一个新的列表。。。 所以如果这是你的意图,应该是这样的:
z = [1,2,3]
z = [1 for x in z]
输出:
[1,1,1]
我想用列表理解来修改列表元素。
>>> z = [1,2,3]
>>> id(z)
139881702963336
>>> _ = [z.__setitem__(i, 1) for i in range(len(z))]
>>> z
[1, 1, 1]
>>> id(z)
139881702963336
这将修改现有列表,而不是创建一个新列表。 当然,可以简单地忽略列表理解返回的none
值列表。 上面将它分配给一个虚拟变量,只是为了防止它在交互会话中被回显。
使用以下理解:z=[z[0]for_in z]
这将创建一个与旧列表长度相同的新列表,并且只包含旧列表的第一个元素。