我有这段代码,在我看来相当丑陋,我想知道如何做得更好:
if dic.get(key, None) is None:
dic[key] = None
优雅的要点; - )
答案 0 :(得分:10)
d.setdefault(key) # sets d[key] to None if key is not in d
答案 1 :(得分:7)
if key not in dic:
dic[key] = None
这可能不像Olivier的代码那么短,但至少它是明确而快速的。
请不要使用dict
作为变量名称,它会内置阴影。
答案 2 :(得分:3)
import collections
mydict = collections.defaultdict(lambda: None)
现在,mydict[akey]
的所有访问权限(如果akey
未作为mydict
中的密钥存在)将mydict[akey]
设置为None
作为副作用
请注意defaultdict
的初始化程序需要一个无参数可调用,而lambda
则为{<1}}。