【发布时间】:2022-01-15 16:18:38
【问题描述】:
我正在尝试在字典中查找字典的键,并使用集合/列表理解将它们写入集合。
所以它看起来像这样:
dict_o_dicts = {
1: {'de': 'eins', 'en': 'one' },
2: {'de': 'zwei', 'en': 'two' },
3: {'ru': 'три', 'gr': 'τρία' },
0: {'ru': 'ноль' }}
我可以使用:
result = set()
for x in dict_o_dicts:
for y in dict_o_dicts[x]:
result.add(y)
给出所需的输出:
{'de', 'en', 'gr', 'ru'}
但我需要使用集合/列表理解来解决它。我尝试了一切,但我总是卡在某个地方。例如:
result = [set(dict_o_dicts[x].keys()) for x in dict_o_dicts]
它给了我一个集合列表,但我怎样才能将它们联合起来呢?就是不知道怎么一口气解决。
【问题讨论】:
-
有
ChainMap。set(ChainMap(*dict_o_dicts.values())) -
整个表达式必须是推导式还是唯一要求它必须是单行表达式?
-
有没有办法只使用标准库?
-
只需要单行
-
@goinginsane23,
collections.ChainMap是标准库的一部分。
标签: python dictionary set list-comprehension set-comprehension