我尝试测试 v*v
和 v**2
之间的性能表现。结果如下:
# test was generated with randint(1, 999)
# 0.10778516498976387
print(timeit.timeit("sum([item*item for item in test])", number=10000, setup="from __main__ import test"))
# 0.35526178102009
print(timeit.timeit("sum([item**2 for item in test])", number=10000, setup="from __main__ import test"))
我开始这个实验的原因是我不想在列表推导式中执行相同的操作。 由于运算符只出现一次(例如,(item-3) * (item*3) 和 (item-3)**2),我认为 (item-3)**2 比 (item-3)*(item-3) 更快。但事实完全相反。 有人能解释一下为什么吗? [+] 我使用的是python3.6.0。
x**3
或x**2.5
相比如何? - Stephen Rauch