0

下面的声明是错误的吗?b虽然它没有给出任何语法错误,但有时我看到a值追加操作在列表的情况下不起作用。

a=b=c=[]
 or 
a=b=c={}

a=b=c=1 //works
4

4 回答 4

4
a=b=c=[]

工作,但不做你想做的事。它创建一个列表对象并将三个不同的名称与之关联:

a.append(1)
print b # [1]

你想要的可能是:

a, b, c = [], [], []

现在 a、b 和 c 是三个独立的列表。

于 2012-06-04T09:30:40.923 回答
3

你试过了吗?

这取决于您所说的“错误”是什么意思。这不是语法错误,但它确实意味着a,bc引用同一个列表。因此,如果您随后将某些内容附加到a,您也会在bc中看到它。

于 2012-06-04T09:29:12.243 回答
0

Python 列表和字典是可变的。阅读下面链接中的讨论。它可以让您很好地了解要尝试的内容

http://docs.python.org/release/2.5.2/lib/typesseq-mutable.html

于 2012-06-04T09:32:55.150 回答
0

其他几个答案正确地说a=b=c=[]使所有三个名称都引用同一个列表对象。然而,还有一点:在 Python 中,你不需要声明任何东西。仅当您想附加到它们时,您才需要将名称 和 放入空a列表中bc否则,您可以将它们设置为您想要的任何内容。

于 2012-06-04T09:40:25.637 回答