我是Python新手,正在閱讀2009年出版的一本書,因此使用Python 2.5語法。它具有以下功能:這是一個較老的Python版本的字典嗎?
_fields_ = [
("cb", DWORD),
("lpReserved", LPTSTR),
...
]
對我來說,它看起來像一個元組列表,但在同一時間,感覺就像一個地圖/字典。這是舊的語法嗎?
我是Python新手,正在閱讀2009年出版的一本書,因此使用Python 2.5語法。它具有以下功能:這是一個較老的Python版本的字典嗎?
_fields_ = [
("cb", DWORD),
("lpReserved", LPTSTR),
...
]
對我來說,它看起來像一個元組列表,但在同一時間,感覺就像一個地圖/字典。這是舊的語法嗎?
這是完美的,當前的語法,並表示對(兩項元組)的列表。如果你需要一個字典(並沒有重複鍵的問題;-),dict(_fields_)
會讓你一個(很像somedict.items()
讓你從一個字典對 - list(somedict.items())
列表,如果你在Python 3,但堅持得到一個列表而不只是一個視圖/迭代器,順便說一句;-)。
不,這總是一個元組列表。這看起來像ctypes的數據類型「映射」,但它只是一個列表,而不是一個真正的地圖。
不,這只是一個元組列表。 Python中的字典一直使用{}
表示法。
值得注意的是,'dict(_fields)'會返回以明顯方式構建的字典。 – aaronasterling 2010-09-27 01:50:10
如果你把它變成字典,你會失去元組列表中的排序,這可能很重要。 (Python在3.2中使用'collections.OrderedDict'獲取標準化的有序地圖數據類型。 – bobince 2010-09-27 01:54:13
@bobince:很好的提及字典無序的細節。 'collections.OrderedDict'也在python 2.7中。 – intuited 2010-09-27 04:05:44