比较 Python 中的性能:相等与不相等

Bus*_*man 5 python comparison performance equals

比较任何变量时,可以选择比较相等还是比较不相等。对于只有一个元素的变量,而不是字符串/列表/元组/等...,差异可能不存在或可以忽略不计。

问题: 比较两个多元素变量时,检查它们是否相等比比较它们是否不相等慢还是快。

我的直觉告诉我比较它们是否不相等应该更快。我很好奇是否有人可以告诉我这是否属实,以及对于哪些类型的多元素类型来说是这样。

注意:我已经查看过,但没有找到任何可以回答我的问题的帖子。这可能是显而易见的,但我想得到更多的意见,而不仅仅是我自己的。

g.d*_*d.c 4

你总是可以检查:

>>> timeit("{'a': 1, 'b': 2} == {'a': 2, 'b': 1}")
0.29072967777517983
>>> timeit("{'a': 1, 'b': 2} != {'a': 2, 'b': 1}")
0.2906114293159803
Run Code Online (Sandbox Code Playgroud)

差异似乎可以忽略不计......也许是另一个测试用例?

>>> timeit("range(30) == range(35)")
0.7179841181163837
>>> timeit("range(30) != range(35)")
0.725536848004765
Run Code Online (Sandbox Code Playgroud)

再次,可以忽略不计。

>>> timeit("a == b", "a = {'a': 1, 'b': 2}; b = {'a': 2, 'b': 1}")
0.06806470555693522
>>> timeit("a != b", "a = {'a': 1, 'b': 2}; b = {'a': 2, 'b': 1}")
0.06724365965146717
Run Code Online (Sandbox Code Playgroud)

并且随着对象创建的移出。诚然,这些例子很小,但我仍然认为,当它们明显不同时,它们都会在适当的情况下使用短路。