我正在寻找字典中与键相关联的所有值。有时钥匙里只有一本字典,有时是一个字典列表。
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']
它很管用,但看起来不整洁,也不像Python。for循环在单值情况下失败,因此是if/else。
你能改进一下吗?
如果你有一个包含一个项目的列表(我认为应该是这样的),那么你的代码就会中断,如果你真的不能改变你的数据结构,那么这个列表会更健壮一些,逻辑也更合理一些:
为什么不总是让“shelf”映射到元素列表,但在单个元素的情况下,它是。。。单元素列表?这样你就可以对每个书架一视同仁了。
相关问题 更多 >
编程相关推荐