2016-12-29 93 views
-1

我有一個字典與一些鍵,我想存儲每個鍵的元素作爲列表的列表。如何訪問字典的元素?

dict = {'d': [[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']], 
     'm': [[4.2, 12, 'p5'], [4.8, 25, 'p6'], [4.3, 3, 'p7'], [8.9, 29, 'p8']], 
     's': [[8.6, 42, 'p9'], [9.7, 46, 'p10']], 
     'g': [[4.3, 56, 'p11'], [5.1, 8, 'p12']]} 
k=[] 
for i in range(len(dict)): 
    k.append(dict['d'][i]) 
print k 
  • 預期輸出:[[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']]

  • 電流輸出:[2.8, 3, 'p4', [5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [...]]

請提出好的建議,或者至少指向我在正確的方向。提前致謝。

+0

現有的答案已經在一個更好的辦法解決你的問題,但我想來指出你所犯的錯誤:如果你使用了'range(len(dict ['d']))'而不是'range(len(dict))',你會得到想要的結果。 – mkrieger1

回答

1

我不知道爲什麼你使用的是循環的,但你需要的值是密鑰的值ddict。您可以訪問它想:

>>> my_dict = {'d':[[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[2.8,3,'p4']],'m':[[4.2,12,'p5'],[4.8,25,'p6'],[4.3,3,'p7'],[8.9,29,'p8']],'s':[[8.6,42,'p9'],[9.7,46,'p10']],'g':[[4.3,56,'p11'],[5.1,8,'p12']] } 

>>> my_dict['d'] 
[[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']] 

注:不要使用dict變量名,因爲它是內置式的Python

1

只需使用索引訪問:

k = dict['d'] 

,或者如果你想在列表的副本:

k = dict['d'][:] 
+0

k = dict ['d'] [:] 使用這個我得到以下輸出 [[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3' ],[2.8,3,'p4',[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[]]] [[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[2.8,3,'p4']] –

-1

當你的字典現在站立,每個按鍵已經是一個列表列表。正如Daniel指出的那樣,每個關鍵點都指向它所引用的列表。

如果你正在尋找的是什麼都在你的字典中列出的清單,你可以簡單地這樣做:

>>> di = {'d':[[5.5,42,'p1'],[3,17,'p2'],[3,8,'p3'],[2.8,3,'p4']],'m':[[4.2,12,'p5'],[4.8,25,'p6'],[4.3,3,'p7'],[8.9,29,'p8']],'s':[[8.6,42,'p9'],[9.7,46,'p10']],'g':[[4.3,56,'p11'],[5.1,8,'p12']] } 
>>> [value for value in di.values()] 
[[[5.5, 42, 'p1'], [3, 17, 'p2'], [3, 8, 'p3'], [2.8, 3, 'p4']], [[4.2, 12, 'p5'], [4.8, 25, 'p6'], [4.3, 3, 'p7'], [8.9, 29, 'p8']], [[8.6, 42, 'p9'], [9.7, 46, 'p10']], [[4.3, 56, 'p11'], [5.1, 8, 'p12']]]