成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python有序字典的兩個小“驚喜”

開發 后端
在 3.6 之前,字典是無序的:遍歷順序是隨機的。關于有序字典,這里有兩件令人意外的事情。

從 Python 3.6 開始,常規的字典會記住其插入的順序:就是說,當遍歷字典時,你獲得字典中元素的順序跟它們插入時的順序相同。

在 3.6 之前,字典是無序的:遍歷順序是隨機的。

關于有序字典,這里有兩件令人意外的事情。

[[348222]]

1. 你無法獲得第一個元素

由于字典中的元素具有特定的順序,因此獲取第一個(或第 N 個)元素應該很容易,對吧?

不對!沒辦法直接做到。

你可能會認為 d[0] 就是第一個元素,但并不是,它只是鍵為 0 的值,有可能是添加到字典的最后一個元素。

獲得第 N 個元素的唯一方法是遍歷字典,直到取得第 N 個元素。不能根據有序索引來作隨機訪問。

這是一處列表勝過字典的地方。獲取列表的第 N 個元素是 O(1) 操作。獲取字典的第 N 個元素(即使已排序)是 O(N) 操作。

2. OrderedDict 有點不同

由于現在的字典是有序的,collections.OrderedDict 就沒用了,對吧?

(譯注:3.6 版本前的 dict 是無序的,但標準庫里提供了一個有序字典 OrderedDict。現在 dict 變有序了,那 OrderedDict 似乎是多余了?)

好像是。但是它不會被刪除,因為那樣會破壞正在使用它的代碼,并且它還擁有一些常規字典沒有的方法。

另外,它們在行為上也有細微的差別。在比較是否相等時,常規字典不會考慮順序,但 OrderedDict 會:

  1. >>> d1 = {"a": 1, "b": 2} 
  2. >>> d2 = {"b": 2, "a": 1} 
  3. >>> d1 == d2 
  4. True 
  5. >>> list(d1) 
  6. ['a', 'b'] 
  7. >>> list(d2) 
  8. ['b', 'a'] 
  9.  
  10. >>> from collections import OrderedDict 
  11. >>> od1 = OrderedDict([("a", 1), ("b", 2)]) 
  12. >>> od2 = OrderedDict([("b", 2), ("a", 1)]) 
  13. >>> od1 == od2 
  14. False 
  15. >>> list(od1) 
  16. ['a', 'b'] 
  17. >>> list(od2) 
  18. ['b', 'a'] 
  19. >>> 

(譯文完):(https://nedbatchelder.com//blog/202010/ordered_dict_surprises.html)

 

責任編輯:趙寧寧 來源: Python貓
相關推薦

2021-08-03 08:13:47

數據

2021-01-28 08:20:41

鏈表空間復雜度

2021-11-17 08:43:17

LeetCode有序數組算法

2010-11-22 15:48:40

MySQL修復表

2013-12-18 10:34:42

OpenMP線程

2012-08-03 10:15:10

windows 7操作系統

2012-06-13 11:25:23

Windows 8系統技巧

2011-09-20 15:19:15

Python

2020-04-17 10:13:51

Python開發工具

2019-08-28 10:00:34

Python測試工具命令

2010-08-30 08:50:48

WLAN 無線網絡

2010-09-01 08:35:07

Visual Stud

2021-04-28 06:20:59

JVMJavaJVM調優

2022-07-05 15:15:11

Python日期命令

2022-06-17 09:46:51

Chrome 102Chrome瀏覽器

2009-07-15 18:29:22

Jython應用

2010-07-02 12:26:51

LEACH協議

2009-10-13 08:49:02

Windows 7Bug

2023-11-03 15:33:22

Docker鏡像云計算

2023-07-11 14:13:04

技術會談
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲二区视频 | 精品亚洲永久免费精品 | 久久99精品久久久久久国产越南 | 欧美一区 | 人成精品 | 国产精品亚洲第一区在线暖暖韩国 | 精品国产91乱码一区二区三区 | 国产视频精品在线观看 | 欧美中文字幕一区二区 | 91在线观看 | 中文字幕在线免费 | 国产成人免费在线 | 欧美久久国产精品 | 中文字幕丁香5月 | a级在线观看 | 精品在线免费看 | 免费午夜电影 | 一区二区小视频 | 欧美精品久久久久久久久久 | 国产精品中文字幕一区二区三区 | 亚洲一区二区三区免费视频 | 国产福利91精品 | 国产目拍亚洲精品99久久精品 | 国产亚洲精品精品国产亚洲综合 | 日韩欧美亚洲 | 福利视频日韩 | 日韩av成人 | 国产中文字幕在线观看 | 自拍偷拍亚洲视频 | 国产综合久久 | 色在线免费视频 | 在线精品一区二区 | 国产成人aⅴ | 一区二区视频在线 | 久久精品 | 欧美日韩国产一区二区三区 | 九九九视频 | 亚州中文| 夜夜爽99久久国产综合精品女不卡 | 我爱操| 日韩中文字幕 |