Python:获取与字典中的键关联的所有值,其中值可以是列表或单个项
|
我正在寻找与字典中的键相关联的所有值。有时,键仅包含一个字典,有时则包含字典列表。
a = {
\'shelf\':{
\'book\':{\'title\':\'the catcher in the rye\', \'author\':\'j d salinger\'}
}
}
b = {
\'shelf\':[
{\'book\':{\'title\':\'kafka on the shore\', \'author\':\'haruki murakami\'}},
{\'book\':{\'title\':\'atomised\', \'author\':\'michel houellebecq\'}}
]
}
这是我阅读书架上每本书标题的方法。
def print_books(d):
if(len(d[\'shelf\']) == 1):
print d[\'shelf\'][\'book\'][\'title\']
else:
for book in d[\'shelf\']:
print book[\'book\'][\'title\']
它可以工作,但看起来并不整洁或Pythonic。 for循环在单值情况下失败,因此在if / else下失败。
您可以对此进行改进吗?
没有找到相关结果
已邀请:
4 个回复
捕暑句簿姓
骂狮淋唐便
誓猎贰
械怒等
我认为这看起来有点整洁和pythonic,尽管有些人可能认为它不如原始代码创建具有一个元素并循环遍历的数组有效。