我有一个词典,我想说“如果有类别,则获取类别图标。如果没有,请返回''
”。
我这样做是为了将字符添加到字符串中:
'Icon: %s' % venue.get('category', '').get('icon', 'No Icon')
显然,如果没有类别,get()
会抛出错误。以下是其他一些错误的方法:
venue.get('category[icon]', '')
venue.get('category', '')['icon']
希望这说明了我正在努力做的事情。如果没有if / else语句,有没有办法做到这一点?
答案 0 :(得分:2)
您可以将默认值设为空字典:
'Icon: %s' % venue.get('category', {}).get('icon', 'No Icon')
但是,每次运行时都会产生空字典创建的开销。如果性能对您很重要,请尝试:
'Icon: %s' % (venue['category'].get('icon', 'No Icon') if 'category' in venue else 'No Icon')
还有很多其他方法可以解决这个问题,甚至可能比上面的方法更有效(如果找到'category'
,上面会进行两次查找)。