下面的声明是错误的吗?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否则,您可以将它们设置为您想要的任何内容。