Py学习  »  Python

为什么比较python中匹配的字符串比不匹配的字符串更快?

Eric • 3 年前 • 1290 次点击  

以下是两个测量值:

timeit.timeit('"toto"=="1234"', number=100000000)
1.8320042459999968
timeit.timeit('"toto"=="toto"', number=100000000)
1.4517491540000265

如您所见,比较两个匹配的字符串比比较两个大小相同但不匹配的字符串要快。 这相当令人不安:在字符串比较期间,我认为Python正在逐个字符测试字符串,所以 "toto"=="toto" 测试的时间应该比 "toto"=="1234" 因为它需要四次测试,而非匹配比较则需要一次测试。也许比较是基于散列的,但在这种情况下,两种比较的计时应该相同。

为什么?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/132159
 
1290 次点击  
文章 [ 2 ]  |  最新文章 3 年前