Python 嵌套字典推导式与集合
有人能解释一下怎么做嵌套的字典推导式吗?
>> 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}
我刚刚问了一个之前的问题,关于一个更简单的字典推导式,那个推导式里生成器函数的括号少了。为什么最左边的推导式里的s
没有被识别呢?
1 个回答
5
只需要把这两个循环的顺序调换一下就可以了:
j = dict((a, i) for i, s in enumerate(l) for a in s)