【发布时间】:2011-10-11 05:38:07
【问题描述】:
我想给自己附加一个列表,我认为这会起作用:
x = [1,2]
y = x.extend(x)
print y
我想找回[1,2,1,2],但我得到的只是内置的None。我究竟做错了什么?我正在使用 Python v2.6
【问题讨论】:
我想给自己附加一个列表,我认为这会起作用:
x = [1,2]
y = x.extend(x)
print y
我想找回[1,2,1,2],但我得到的只是内置的None。我究竟做错了什么?我正在使用 Python v2.6
【问题讨论】:
x.extend(x) 不返回新副本,它会修改列表本身。
只需打印x。
你也可以选择x + x
【讨论】:
x.extend(x) 就地修改x。
如果您想要一个新的、不同的列表,请使用y = x + x。
【讨论】:
或者只是:
x = [1,2]
y = x * 2
print y
【讨论】:
[x, x],如果x 的一个元素发生变化,y 的另一个索引也会发生变化:stackoverflow.com/questions/240178/…
[x] * 2 是这样,它等价于[x] + [x]。但是,x * 2 等效于 x + x,在这种情况下会创建一个“浅”值列表。
x.extend(x) 将就地扩展 x。
>>> print x
[1, 2, 1, 2]
【讨论】:
如果您想要列表的新副本,请尝试:
x = [1,2]
y = x + x
print y # prints [1,2,1,2]
不同之处在于extend“就地”修改了列表,这意味着即使修改了列表,它也会始终返回None。
【讨论】: