Python 创建n个不同集合的列表

Python 创建n个不同集合的列表,python,python-2.7,Python,Python 2.7,p/S:这不是重复的,我自己已经有了一个答案,它映射到重复解决方案中的答案,我需要的是尽可能短的表达式 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=[se

p/S:这不是重复的,我自己已经有了一个答案,它映射到重复解决方案中的答案,我需要的是尽可能短的表达式

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

我不知道这是不是最短的,但比你的:

l=map(set,[[]]*passwordLen)
例子
所以你已经有的东西有什么问题?@jornsharpe可能会有一个比
l=[set()for uuu2; in xrange(passwordLen)]
更短的表达式,但是我建议你还是坚持你所拥有的(简单易读)不要浪费时间去尝试高尔夫。你能告诉我们为什么你想要表达得更短吗?也就是说,使用较短的表达式可以解决什么问题?
>>> l[0].add(1)
>>> print l
[set([1]), set(), set(), set(), set(), set()]