Python字典逐点输出

标签 python list list-comprehension nested-loops dictionary-comprehension

如果我有一本字典:

d={
's':['a','b','c'], 
'v':['d','e'], 
'r':['g','h','i'],} 

(可以有任意数量的键)

我如何输出所有成对组合的列表,即

['adg','adh', 'adi', 'aeg', 'aeh', 'aei', 'bdg', 'bdh', 'bdi', 'beg', 'beh', 'bei', 'cdg', 'cdh', 'cdi', 'ceg', 'ceh', 'cei']

我用过:

l=list()
temp=''
for i in range(len(d['s'])):
    for j in range(len(d['v'])):
        for k in range(len(d['r'])):
            temp=d['s'][i]+d['v'][j]+d['r'][k]
            print(temp)
            l.append(temp)

但我需要使其对于任意数量的键通用。

谢谢

最佳答案

使用itertools.product和列表理解中的 str.join:

from itertools import product

out = [''.join(p) for p in product(*d.values())]

输出:

['adg', 'adh', 'adi', 'aeg', 'aeh', 'aei',
 'bdg', 'bdh', 'bdi', 'beg', 'beh', 'bei',
 'cdg', 'cdh', 'cdi', 'ceg', 'ceh', 'cei']

关于Python字典逐点输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73346776/

相关文章:

python - 在Python中查找两个列表之间单个不同元素的索引的有效方法

python - 列表理解在这里合适吗?

python - 使用列表理解来搜索列表中每个元素的第一个元素

python - 在 python 中比较列表和元组

python - 根据内部列表的第 N 个元素的总和对列表的列表的列表进行排序

python - tf.unique 不重复索引

python - 在 python 3.5 中安装 scrapy 时出错

c# - 清除 treeView 崩溃

python - 内联 for 循环

python - 神经网络的多维输入