【发布时间】:2011-02-07 05:41:49
【问题描述】:
我现在正在重新接触 Python,因为我很喜欢它。但是,我发现自己一遍又一遍地遇到一种模式。我一直在想,一定有更好的方式来表达我想要的东西,而我可能做错了。
我正在编写的代码格式如下:
# foo is a dictionary
if foo.has_key(bar):
foo[bar] += 1
else:
foo[bar] = 1
我在我的程序中写了很多。我的第一反应是把它推到一个辅助函数中,但是 python 库经常提供这样的东西。
我缺少一些简单的小语法技巧吗?还是应该这样做?
【问题讨论】:
-
顺便说一句,你可以说
if bar in foo:而不是if foo.has_key(bar): -
@J.F. Sebastian:+1 使用正则表达式 :-)
-
我使用 has_key 是因为我认为(我猜错了)它会使用散列函数来查找键而不是搜索列表,因此效率更高。感谢您的提示 - 我会相应地调整我的编码。
-
4 年后,但我认为对于那些可能最终从谷歌来到这里的人(比如我)来说,这很重要:
if key in dict实际上比d.has_key(key)更有效,并且在概念上更好。