Appending a list to itself in Python

2019-02-14 20:07发布

问题:

I want to attach a list to itself and I thought this would work:

x = [1,2]
y = x.extend(x)
print y

I wanted to get back [1,2,1,2] but all I get back is the builtin None. What am I doing wrong? I'm using Python v2.6

回答1:

x.extend(x) does not return a new copy, it modifies the list itself.

Just print x instead.

You can also go with x + x



回答2:

x.extend(x) modifies x in-place.

If you want a new, different list, use y = x + x.



回答3:

x.extend(x) will extend x inplace.

>>> print x

[1, 2, 1, 2]


回答4:

If you want a new copy of the list try:

x = [1,2]
y = x + x
print y # prints [1,2,1,2]

The difference is that extend modifies the list "in place", meaning it will always return None even though the list is modified.



回答5:

or just:

x = [1,2]
y = x * 2
print y