我是使用python字典的新手,一直被如何在嵌套字典中迭代和引用特定键所困扰。例如,在下面的代码中,我希望只列出字典中每个宠物的宠物名。现在,我已经列出了每个宠物的所有钥匙。
petDict = {
'pet1' : {
'type' : 'dog',
'name' : 'scooby',
'age' : '4'
},
'pet2' : {
'type' : 'cat',
'name' : 'milo',
'age' : '1'
},
'pet3' : {
'type' : 'fish',
'name' : 'danny',
'age' : '2'
}
}
print('Here are my pets:')
for petNum, petInfo in petDict.items():
for key in petInfo:
print(key + ': ', petInfo[key])
当前输出:
type: dog
name: scooby
age: 4
type: cat
name: milo
age: 1
type: fish
name: danny
age: 2
所需输出:
name: scooby
name: milo
name: danny
1条线解决方案:
petDict = {
'pet1': {
'type': 'dog',
'name': 'scooby',
'age': '4'
},
'pet2': {
'type': 'cat',
'name': 'milo',
'age': '1'
},
'pet3': {
'type': 'fish',
'name': 'danny',
'age': '2'
} }
petNames = [petDict[spe]['name'] for spe in petDict]
print(petNames)
petDict = {
'pet1': {
'type': 'dog',
'name': 'scooby',
'age': '4'
},
'pet2': {
'type': 'cat',
'name': 'milo',
'age': '1'
},
'pet3': {
'type': 'fish',
'name': 'danny',
'age': '2'
}
}
print('Here are my pets:')
for petNum, petInfo in petDict.items():
print('name: ', petInfo["name"])
输出:
Here are my pets:
name: scooby
name: milo
name: danny
您可以简单地使用if条件来检查键是否为name
,如下所示。
petDict = {'pet1': {
'type': 'dog',
'name': 'scooby',
'age': '4'
},
'pet2': {
'type': 'cat',
'name': 'milo',
'age': '1'
},
'pet3': {
'type': 'fish',
'name': 'danny',
'age': '2'
}
}
print('Here are my pets:')
for petNum, petInfo in petDict.items():
for key in petInfo:
if key == 'name':
print(key + ': ', petInfo[key])
通过这种方式,如果您还想获得其他键,您可以根据所需的键添加附加条件。