Python 嵌套字典推导式与集合

1 投票
1 回答
1496 浏览
提问于 2025-04-16 09:39

有人能解释一下怎么做嵌套的字典推导式吗?

>> 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)

撰写回答