我有一个关于在 Python中搜索大型字典的效率的快速问题。我正在阅读一个以逗号分隔的大文件,并从每一行获取一个键和值。如果我的键已经在字典中,我将值添加到字典中列出的值,如果键不存在于字典中,我只需添加值。以前我用这个:
if key in data_dict.keys():
add values
else:
data_dict[key] = value
这开始很快,但随着字典的增长,它变得越来越慢,到我根本无法使用它的地步。我将在字典中搜索键的方式更改为:
try:
# This will fail if key not present
data_dict[keyStr] = input_data[keyStr] + load_val
except:
data_dict[keyStr] = load_val
这无限快,可以在 3 秒内读取/写入超过 350,000 行代码。
我的问题是为什么if key in data_dict.keys():
命令比调用要长得多try: data_dict[keyStr]
?为什么 Pythontry
在字典中搜索键时不使用该语句?