我動態創建一個二維關聯數組(字典?)迭代在Python一個鍵多維關聯數組
我通過它的鍵試圖環路 - 同時保持恆定的指標之一,因此對於實例的所有關聯的值在其第一架「重點」與「約翰」:
myhash['john']['smith'] = "address 1"
myhash['john']['doe'] = "address 2"
我怎麼可以得到所有的哈希鍵的每個「關鍵」保持第一指數爲「約翰」 (我想要所有的姓氏)
謝謝
我動態創建一個二維關聯數組(字典?)迭代在Python一個鍵多維關聯數組
我通過它的鍵試圖環路 - 同時保持恆定的指標之一,因此對於實例的所有關聯的值在其第一架「重點」與「約翰」:
myhash['john']['smith'] = "address 1"
myhash['john']['doe'] = "address 2"
我怎麼可以得到所有的哈希鍵的每個「關鍵」保持第一指數爲「約翰」 (我想要所有的姓氏)
謝謝
myhash['john']
本身就是一本字典。 (你是不是建立一個多維的字典,而字典的字典。)
因此...
last_names = list(myhash['john'])
,或者如果你想要做的事在一個循環...
for last_name in myhash['john']:
# do something with last_name
>>> for k in myhash['john']:
... print(k)
...
smith
doe
我已經mentionned它的時候answering your previous question:它看起來像你試圖重新發明方輪。考慮到你的需求,你可能會希望對lastname部分進行查詢,然後返回到步驟1(瀏覽整個數據集,按順序測試「2nd-level」鍵)或保留「lastname」存儲lastname的索引:[firstname1,firstname2,firstnameN],它減少(但不禁止)順序瀏覽,並且在插入或刪除時需要更新。如果你正在重新實現關係數據庫的大部分功能,並且你的實現不太可能比甚至更便宜的RDB更快或更強大。爲了記錄,有非常輕量級的,基於文件的(不需要服務器進程等)RDB引擎,如SQLite3(Python bindings are in the stdlib,所以你甚至不需要安裝任何特殊的東西)。
是的,一本字典。 – 2012-07-07 19:28:40
[在python字典中迭代單個維度]的可能重複(http://stackoverflow.com/questions/11378048/iterate-over-a-single-dimension-in-python-dictionary) – Marcin 2012-07-07 20:32:05