下面的声明是错误的吗?b
虽然它没有给出任何语法错误,但有时我看到a
值追加操作在列表的情况下不起作用。
a=b=c=[]
or
a=b=c={}
a=b=c=1 //works
a=b=c=[]
工作,但不做你想做的事。它创建一个列表对象并将三个不同的名称与之关联:
a.append(1)
print b # [1]
你想要的可能是:
a, b, c = [], [], []
现在 a、b 和 c 是三个独立的列表。
你试过了吗?
这取决于您所说的“错误”是什么意思。这不是语法错误,但它确实意味着a
,b
并c
引用同一个列表。因此,如果您随后将某些内容附加到a
,您也会在b
和c
中看到它。
Python 列表和字典是可变的。阅读下面链接中的讨论。它可以让您很好地了解要尝试的内容
http://docs.python.org/release/2.5.2/lib/typesseq-mutable.html
其他几个答案正确地说a=b=c=[]
使所有三个名称都引用同一个列表对象。然而,还有一点:在 Python 中,你不需要声明任何东西。仅当您想附加到它们时,您才需要将名称 和 放入空a
列表中b
。c
否则,您可以将它们设置为您想要的任何内容。