2014-02-27 49 views
1

Python列表我才意识到,这两种行为不同初始化具有独特的套

a = [set()] * 3 

b = [set(), set(), set()] 

一个的元素将是一组相同的实例,即

a[0] is a[1] is a[2]是真的

B的元素都将是该集合的不同实例。

b[0] is b[1] is b[2]是假

我想知道是否存在一种技术,一个巧妙的方法来初始化集合唯一实例列表。

或者这是唯一的方法:

a = [] 
for i in range(3): 
    a.append(set()) 

回答

4

你可以使用列表理解:

b = [set() for i in range(3)] 

由于表达set()是在列表理解每次迭代计算,你会得到3个不同的集。

1

使用列表解析。

a = [set() for i in range(3)]