最近在用Python写代码的时候,无意将生成两个空列表的语句改成了:

a = b = []

这样乍一看没什么问题,都是生成空列表嘛,但是这样做得到的是浅拷贝,就是说a和b的值会随着一个的改变而改变,导致两个列表不管进行什么操作得到的都是同一个列表:

In [5]: a = b = []

In [6]: a.append(20)

In [7]: b
Out[7]: [20]

In [8]: b.append(299)

In [9]: a
Out[9]: [20, 299]

In [10]: b
Out[10]: [20, 299]

所以在实际应用中最好还是别偷懒,使用:

a = []
b = []

比较好.