gpt4 book ai didi

python - 通过字典中的字典进行一行迭代

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:13 28 4
gpt4 key购买 nike

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']

最佳答案

只需使用 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)

结果:

['c', 'b', 'c', 'a']

请注意,在迭代字典键时无法保证顺序。

不使用 itertools 的变体,在内部理解中使用扁平化双循环(这可能更接近您的尝试):

result = [x for values in G2.values() for x in values]

关于python - 通过字典中的字典进行一行迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44562578/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com