在 Python 中迭代一个字典键的多个值

nrs*_*s90 0 python dictionary list

这是我的 Python 函数之一的摘录:

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
d_list = []
for key,value in d.iteritems():
    temp = [key, value]
    d_list.append(temp)
Run Code Online (Sandbox Code Playgroud)

当我打印d_list它时,它目前给了我:

>>>print d_list
[['ANIMAL', ['CAT', 'DOG', 'FISH', 'HEDGEHOG']]]
Run Code Online (Sandbox Code Playgroud)

我如何重写函数,以便它给我:

>>>print d_list
[['ANIMAL', 'CAT'],['ANIMAL', 'DOG'],['ANIMAL', 'FISH'],['ANIMAL', 'HEDGEHOG']]
Run Code Online (Sandbox Code Playgroud)

kur*_*uro 8

两个嵌套循环可以轻松做到这一点 -

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
d_list = []
for key, values in d.iteritems():
    for value in values:
        d_list.append([key, value])
Run Code Online (Sandbox Code Playgroud)

使用列表理解 -

d_list = [[k,v] for k, values in d.iteritems() for v in values]
Run Code Online (Sandbox Code Playgroud)

对于 python 3.x,你应该iteritems改为items