了解Python list.append行为

时间:2016-06-06 21:15:21

标签: python-2.7

为什么在以下示例中,append big_l循环中的for也会更改已添加到big_l的最后一个列表?

l=[1,2,3,4,5]

big_l=[]

def f(ll):
    x=ll.pop(0)
    ll.append(x)
    return ll

for i in range(4):
    big_l.append(l)
    print l,big_l
    l=f(l)

打印:

[1, 2, 3, 4, 5] - [[1, 2, 3, 4, 5]]
[2, 3, 4, 5, 1] - [[2, 3, 4, 5, 1], [2, 3, 4, 5, 1]]
[3, 4, 5, 1, 2] - [[3, 4, 5, 1, 2], [3, 4, 5, 1, 2], [3, 4, 5, 1, 2]]
[4, 5, 1, 2, 3] - [[4, 5, 1, 2, 3], [4, 5, 1, 2, 3], [4, 5, 1, 2, 3], [4, 5, 1, 2, 3]]

0 个答案:

没有答案