最佳答案
以下是两个衡量标准:
timeit.timeit('"toto"=="1234"', number=100000000)
1.8320042459999968
timeit.timeit('"toto"=="toto"', number=100000000)
1.4517491540000265
如您所见,比较两个匹配的字符串比比较两个大小相同但不匹配的字符串要快。
这非常令人不安: 在字符串比较过程中,我认为 Python 是在逐个字符地测试字符串,因此 "toto"=="toto"
的测试时间应该比 "toto"=="1234"
长,因为在进行非匹配比较时,需要针对一个字符进行四次测试。也许比较是基于散列的,但是在这种情况下,两种比较的计时应该是相同的。
为什么?