l=[set()]*passwordLen
l[0].add(1)
print l
将给出结果
[set([1]), set([1]), set([1]), set([1]), set([1]), set([1])]
但我需要
[set([1]), set(), set(), set(), set(), set()]
创建可以实现此目标的集合列表的最短表达式是什么?
我能想到的是
l=[set() for _ in xrange(passwordLen)]
l[0].add(1)
print l
答案 0 :(得分:1)
我不知道这是否是最短的,但它比你的短:
l=map(set,[[]]*passwordLen)
>>> l[0].add(1)
>>> print l
[set([1]), set(), set(), set(), set(), set()]