在Python中迭代一个dict键的多个值
下面是我的一个python函数的摘录:在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
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”。我刚把它修好。。。英雄联盟