Python将多个变量声明为列表

时间:2012-06-04 09:27:09

标签: python

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

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

a=b=c=1 //works

4 个答案:

答案 0 :(得分:4)

a=b=c=[]

有效,但不能做你想做的事。它创建了一个列表对象,并将三个不同的名称与它关联起来:

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

你想要的可能是:

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

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

答案 1 :(得分:3)

你试过吗?

这取决于你所说的“错误”。这不是语法错误,但它确实意味着abc引用了相同的列表。因此,如果您随后向a附加内容,您也会在bc中看到它。

答案 2 :(得分:0)

Python列表和词典是可变的。阅读以下链接中的讨论。它让您非常了解您想要尝试的内容

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

答案 3 :(得分:0)

其他几个答案正确地说a=b=c=[]使所有三个名称都引用相同的列表对象。但是还有另外一点:在Python中,你没有声明任何东西。只有当您想要附加名称时,才需要将名称abc设置为空列表。否则你可以将它们设置为你想要的任何东西。