日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python连等号_Python比较2列表和2元组用等号

發布時間:2024/9/27 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python连等号_Python比较2列表和2元组用等号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好吧,你的一些困惑是,你正在閱讀的博客文章是錯的。關于多件事。試著忘記你曾經讀過它(除了記住網站和作者的名字,以便你以后知道如何避免它們。)

確實,元組是可以清除的,列表不是,但這與它們的相等測試功能無關。并且它確實不正確#34;它只是比較哈希值,它知道它們是否相等!"哈希碰撞發生,忽略它們會導致可怕的錯誤,幸運的是,Python的開發人員并不是那么愚蠢。事實上,Python在初始化時計算哈希值是不正確的。*

實際上是元組和列表之間的一個顯著差異(在CPython中,從3.6開始),但它通常沒有太大區別:列表對不等長度進行額外檢查作為優化的開始,但同樣的檢查結果是元組的悲觀,**所以它從那里被刪除。

另一個,通常更為重要的區別是,源中的元組文字被編譯為常量值,同一元組文字的單獨副本被折疊到同一個常量對象中;由于顯而易見的原因,列表不會發生這種情況。

事實上,這就是您使用timeit進行真正測試的內容。在我的筆記本電腦上,比較元組需要95ns,而比較列表需要169ns - 但是將其分解,實際上比較為93ns,另外還有38ns來創建每個列表。為了使其公平比較,您必須將創建移動到設置步驟,然后比較循環內已存在的值。 (或者,當然,你可能不希望公平 - 你發現了一個有用的事實,即你每次使用元組常量而不是創建一個新列表時,你都會這樣做節省了相當大的一微秒。)

除此之外,他們基本上做同樣的事情。將the C source轉換為類似Python的偽代碼(并刪除所有錯誤處理,以及使<使相同功能起作用的內容,等等):

for i in range(min(len(v), len(w))):

if v[i] != w[i]:

break

else:

return len(v) == len(w)

return False

if len(v) != len(w):

return False

for i in range(min(len(v), len(w))):

if v[i] != w[i]:

break

else:

return True

return False

*事實上,與字符串不同,元組甚至不會緩存它們的哈希值;如果你反復撥打hash,它會繼續重新計算它。請參閱issue 9685,其中一個要更改的修補程序被拒絕,因為它減慢了某些基準測試并且沒有加速任何人都能找到的任何內容。

**不是因為實現有任何固有的東西,而是因為人們經常比較不同長度的列表,但很少使用元組。

總結

以上是生活随笔為你收集整理的python连等号_Python比较2列表和2元组用等号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。