你们能想出任何一句话来表示if/else语句吗
d = dict()
key = 1, 2
if key in d:
d[key]['idx'] += [2]
else:
d[key] = {'idx': [2]}
print d
什么?你知道吗
编辑: 谢谢你们。你把我缩小到集合.defaultdict&;编辑:setdafault考虑到这一点,我能够实现我想要的:
from collections import defaultdict
d = dict()
key = 1, 2
d.setdefault(key, {'idx': []})
d[key]['idx'] += [2]
也许它不是一行,因为它跨越了两行(setdefault()调用,然后是就地添加),但看起来更好。你知道吗
不过,如果有人有任何想法,如何使它成为真正的一行,请分享。你知道吗
也许:
有时最好是多行操作,这就是其中之一。然而,有时尝试避免这种“Doesthiskeyexist”逻辑是合理的,为此,可以使用collections.defaultdict或^{} 。现在只是为了好玩,这里有一个可怕的一行,你不应该使用(但在行为上等同于你的if/else):
请注意,这比原始版本效率低,因为它需要额外的查找,并且每次使用时都会创建不必要的对象。你知道吗
相关问题 更多 >
编程相关推荐