在Python中迭代一个dict键的多个值

在Python中迭代一个dict键的多个值,python,list,dictionary,Python,List,Dictionary,下面是我的一个python函数的摘录: d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']} d_list = [] for key,value in d.iteritems(): temp = [key, value] d_list.append(temp) 当我打印d_列表时,它当前为我提供: >>>print d_list [['ANIMAL', ['CAT', 'DOG', 'FISH', 'HEDGEHOG

下面是我的一个python函数的摘录:

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
d_list = []
for key,value in d.iteritems():
    temp = [key, value]
    d_list.append(temp)
当我打印d_列表时,它当前为我提供:

>>>print d_list
[['ANIMAL', ['CAT', 'DOG', 'FISH', 'HEDGEHOG']]]
如何重写函数,使其提供:

>>>print d_list
[['ANIMAL', 'CAT'],['ANIMAL', 'DOG'],['ANIMAL', 'FISH'],['ANIMAL', 'HEDGEHOG']]

两个嵌套循环可以轻松完成此操作-

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
d_list = []
for key, values in d.iteritems():
    for value in values:
        d_list.append([key, value])
使用列表理解-

d_list = [[k,v] for k, values in d.iteritems() for v in values]

对于Python3.x,您应该将iteritems更改为items

我就是这样做的。我将直接迭代键的值

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}

d_list = []

for value in d['ANIMAL']:
    temp = ['ANIMAL',value]
    d_list.append(temp)

print (d_list)
结果:

[['ANIMAL', 'CAT'], ['ANIMAL', 'DOG'], ['ANIMAL', 'FISH'], ['ANIMAL', 'HEDGEHOG']]

您需要第二个循环:

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
d_list = []

for key, values in d.iteritems():
    for value in values:
            temp_list=[key, value]
            d_list.append(temp)

您的代码对于测试数据是正确的。但最好是编写代码,这样它就可以在dictionary@Kuro:是的。然而,OP没有询问多个用途。我只能用我能想到的最简单的答案来回答这个问题。为什么我不考虑使用列表理解呢。可能值得注意的是,iteritems已更改为python 3中的条目。谢谢Sierr,我在回答中补充说,您的评论让我意识到我忘记了名字第一部分的字母“a”。我刚把它修好。。。英雄联盟