Python使用集合嵌套dict理解

时间:2011-01-09 11:45:55

标签: python dictionary list-comprehension

有人可以解释如何进行嵌套字典理解吗?

>> l = [set([1, 2, 3]), set([4, 5, 6])]
>> j = dict((a, i) for a in s for i, s in enumerate(l))
>> NameError: name 's' is not defined

我希望:

>> j
>> {1:0, 2:0, 3:0, 4: 1, 5: 1, 6: 1}

我刚刚问previous question一个更简单的字典理解,其中生成函数中的括号减少了。为什么最左边的理解中的s怎么没被识别?

1 个答案:

答案 0 :(得分:5)

只需颠倒两个循环的顺序:

j = dict((a, i) for i, s in enumerate(l) for a in s)