【发布时间】:2014-09-30 22:27:33
【问题描述】:
考虑以下几点:
mylist = ['a','b','c','d']
mydict = {}
for val in mylist:
if val not in mydict:
mydict[val] = []
mydict[val].append(1)
有没有办法避免双重查找(“val in mydict”和“mydict[val]”)?
注意 - 我尝试使用默认返回值(即mydict.get(val, []).append(1)),但新列表实际上并未在字典中注册为键的值。例如:
mydict = {}
mydict.get('not_in_dict','default')
mydict
返回{}。就我而言,我想要返回 {'not_in_dict' : 'default'} 的东西。
或者这里的正确答案是我不应该担心双重查找? (例如“冷静,伙计,如果你不需要,就不要优化”或“python 很棒,它已经解决了这个问题”)。
我正在使用 python 3.4。
【问题讨论】:
-
@Ashwini - 感谢您指出重复的问题。那里的答案正是我想要的。
标签: python python-3.x