社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Eric • 3 年前 • 1157 次点击  

以下是两个测量值:

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
 
1157 次点击  
文章 [ 2 ]  |  最新文章 3 年前