2024-04-26 11:46:32 发布
网友
在更新密钥的值之前,我想测试字典中是否存在密钥。 我写了以下代码:
if 'key1' in dict.keys(): print "blah" else: print "boo"
我认为这不是完成这项任务的最好办法。有没有更好的方法来测试字典里的一把钥匙?
in是测试dict中是否存在密钥的方法。
in
dict
d = dict() for i in range(100): key = i % 10 if key in d: d[key] += 1 else: d[key] = 1
如果需要默认值,可以始终使用dict.get():
dict.get()
d = dict() for i in range(100): key = i % 10 d[key] = d.get(key, 0) + 1
。。。如果您想始终确保任何键的默认值,那么可以使用defaultdict模块中的collections,如下所示:
defaultdict
collections
from collections import defaultdict d = defaultdict(int) for i in range(100): d[i % 10] += 1
。。。但一般来说,in关键字是最好的方法。
您可以使用in关键字测试字典中是否存在键:
d = {'a': 1, 'b': 2} 'a' in d # <== evaluates to True 'c' in d # <== evaluates to False
在对字典进行更改之前,检查字典中是否存在键的常用方法是默认初始化值(例如,如果您的值是列表,并且您希望确保在插入键的第一个值时可以向其追加空列表)。在这种情况下,您可能会发现^{}类型很有趣。
在较旧的代码中,您还可以找到has_key()的一些用法,这是一种不推荐使用的检查字典中是否存在键的方法(只需使用key_name in dict_name)。
has_key()
key_name in dict_name
你不必叫钥匙:
if 'key1' in dict: print "blah" else: print "boo"
这将是很大的faster,因为它使用字典的散列,而不是进行线性搜索,调用键可以做到这一点。
in
是测试dict
中是否存在密钥的方法。如果需要默认值,可以始终使用
dict.get()
:。。。如果您想始终确保任何键的默认值,那么可以使用
defaultdict
模块中的collections
,如下所示:。。。但一般来说,
in
关键字是最好的方法。您可以使用in关键字测试字典中是否存在键:
在对字典进行更改之前,检查字典中是否存在键的常用方法是默认初始化值(例如,如果您的值是列表,并且您希望确保在插入键的第一个值时可以向其追加空列表)。在这种情况下,您可能会发现^{} 类型很有趣。
在较旧的代码中,您还可以找到
has_key()
的一些用法,这是一种不推荐使用的检查字典中是否存在键的方法(只需使用key_name in dict_name
)。你不必叫钥匙:
这将是很大的faster,因为它使用字典的散列,而不是进行线性搜索,调用键可以做到这一点。
相关问题 更多 >
编程相关推荐