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