相关疑难解决方法(0)

Python性能:尝试 - 不在或不在?

在我的一个类中,我有许多方法都可以从相同的字典中获取值.但是,如果其中一个方法试图访问不存在的值,则必须调用另一个方法来使该值与该键相关联.

我目前实现如下,其中findCrackDepth(tonnage)为self.lowCrackDepth [tonnage]赋值.

if tonnage not in self.lowCrackDepth:
    self.findCrackDepth(tonnage)
lcrack = self.lowCrackDepth[tonnage]
Run Code Online (Sandbox Code Playgroud)

但是,我也可以这样做

try:
    lcrack = self.lowCrackDepth[tonnage]
except KeyError:
    self.findCrackDepth(tonnage)
    lcrack = self.lowCrackDepth[tonnage]
Run Code Online (Sandbox Code Playgroud)

我假设两者之间的性能差异与值在字典中的频率有关.这个差异有多大?我正在生成几百万个这样的值(在该类的许多实例中分布在许多字典中),并且每次该值不存在时,它可能有两次.

python performance

3
推荐指数
1
解决办法
1659
查看次数

标签 统计

performance ×1

python ×1