我有一个关于成语和可读性的问题,对于这种特殊情况,似乎存在Python哲学上的冲突:
我想从字典B构建字典A。如果B中不存在特定键,则什么也不做,继续。
哪种方法更好?
try:
A["blah"] = B["blah"]
except KeyError:
pass
要么
if "blah" in B:
A["blah"] = B["blah"]
“请原谅”与“简单明了”。
哪个更好?为什么?
A.update(B)
不会为你工作?
has_key
已弃用赞成in
和检查B.keys()
改变的O(1)操作成为O(n)之一。
.has_key
已被废弃,keys
造成在py2k不需要的列表,并且是多余的py3k
A = dict((k, v) for (k, v) in B if we_want_to_include(k))
。
if "blah" in B.keys()
或if B.has_key("blah")
。