相关疑难解决方法(0)

Python:"除了KeyError"比"如果键入dict"更快?

编辑2:有人建议这是一个类似问题的副本.我不同意,因为我的问题集中在速度,而另一个问题是什么更"可读"或"更好"(没有更好地定义).虽然问题相似,但所给出的讨论/答案存在很大差异.

编辑:我从问题中意识到我可以更清楚.对不起代码拼写错误,是的,它应该使用适当的python运算符进行添加.

关于输入数据,我只选择了一个随机数列表,因为这是一个常见的样本.在我的情况下,我正在使用一个dict,我期望很多keyerrors,可能95%的密钥将不存在,并且存在的少数将包含数据集群.

无论输入数据集如何,我都对一般性讨论感兴趣,但当然有运行时间的样本很有趣.

我的标准方法就像许多其他帖子一样

list =  (100 random numbers)
d = {}
for x in list:
    if x in d:
        d[x]+=1
    else:
        d[x]=1
Run Code Online (Sandbox Code Playgroud)

但我只是想到这个更快,因为我们不必检查字典是否包含密钥.我们只是假设它确实如此,如果没有,我们会处理它.有什么区别或者Python比我聪明吗?

list =  (100 random numbers)
d = {}
for x in list:
    try:
        d[x]+=1
    except KeyError:
        d[x] = 1
Run Code Online (Sandbox Code Playgroud)

与数组中的索引,越界,负索引等相同的方法.

python performance counter dictionary keyerror

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

counter ×1

dictionary ×1

keyerror ×1

performance ×1

python ×1