G2 = {'a': {'c': 1, 'b': 1}, 'b': {'a': 1, 'c': 1}}
b = G2.values()
for i in b:
for key, value in i.items():
list.append(key)
#result: ['c', 'b', 'a', 'c']
我可以使用列表生成器获得相同的结果吗? 我试过这样的话:
list2 = [key for key, value in i.items() for i in b]
#but i get: ['a', 'a', 'c', 'c']
答案 0 :(得分:4)
使用itertools.chain.from_iterable
链接字典值(也称为键),然后转换为列表以打印结果:
import itertools
G2 = {'a': {'c': 1, 'b': 1}, 'b': {'a': 1, 'c': 1}}
#['c', 'b', 'a', 'c']
result = list(itertools.chain.from_iterable(G2.values()))
print(result)
结果:
{{2} }请注意,当您在字典键上进行迭代时,订单无法保证。
Variant未使用['c', 'b', 'c', 'a']
并且在理解中使用展平双循环(这可能更接近您的尝试):
itertools