【发布时间】:2020-05-12 20:19:58
【问题描述】:
我想确保d1-d2 在第一个示例的每次迭代中都不会重新计算。我怎样才能检查这个?
>>> def f(d1: Counter, d2: Counter):
... for reason, count in (d1 - d2).items():
... print(reason, count)
...
>>> def f2(d1: Counter, d2: Counter):
... diff = (d1 - d2).items()
... for reason, count in diff:
... print(reason, count)
任何建议哪种方式在可读性和性能方面更 Pythonic?
【问题讨论】:
-
没有重新计算,第一种情况就ok了
-
它们是等价的,取模一个临时变量。你选择哪一个是一个见仁见智的问题。
-
这能回答你的问题吗? How does a for loop evaluate its argument
标签: python performance counter