【发布时间】:2015-05-05 17:09:52
【问题描述】:
MyDict = {'key1':'value1', 'key2':'value2'}
我可以通过以下几种方式做到这一点:
if 'key1' in MyDict:
var1 = MyDict['key1']
或
if MyDict.has_key('key1'):
var1 = MyDict['key1']
或 罢工>
if MyDict['key1']:
var1=MyDict['key1']
或
try:
var1=MyDict['key1]
except KeyError, e:
pass
或者我尝试了类似的方法,但它在 python 中不能这样工作
if v=MyDict.get('key1'):
var1=v
我们很可能会想出更多的工作方法来做到这一点。 就计算速度而言,哪一个效率最高?
【问题讨论】:
-
dict.has_key()已被弃用,并在 Python 3 中消失。不要使用它。 -
你的例子并不完全相同。前两个检查字典是否具有特定键,而第三个测试该键的布尔值(并假设它存在)。
-
@iCodez 但在这种情况下,空值将解析为 False,非空值将解析为 True - 这也有效,假设我的值中没有使用 0、False 或 None。对吗?
-
如果
'key1'不是字典中的项目,前两个示例将正常工作,而第三个示例将引发KeyError异常。 -
密钥多久丢失一次?是的,这很重要。
标签: python performance dictionary