2014-02-06 33 views
1

瓦爾斯我得到了與第0元素的列表K:訪問鍵和上市蟒蛇快譯通

k[0]: {'pattern': 0, 'pos': array([ 9.83698, 106.539 , 130.314 ]), 'id': 1922} 

(它看起來像一個字典,但其的確名單) 當我遍歷通過列表k的第0元件並打印出每個I獲取元件:

for i in k: 
    print i 

=>輸出:

pattern 
pos 
id 

我我喜歡不僅可以訪問鍵值,而且還可以訪問值。這個怎麼做? 我也嘗試使用zip和izip將列表轉換回字典,但同樣的resutlts ...即。僅鍵打印,沒有價值...... 任何幫助將提前意識到

THX

+0

它看起來像一個字典,因爲它確實是一個字典,而不是一個列表。 –

回答

0

你可以使用k.values()通過值迭代,或k.items()來遍歷(鍵,值)對

for value in k.values(): 
    print value 

for key, value in k.items(): 
    print key, value 
0

遍歷創建的字典最快的方法(它實際上是一本字典)是使用k[0].keys()k[0].valuesk[0].items()創建鍵/值列表,但使用k[0].iteritems() h創建一個字典迭代器,它只返回內存中沒有分配列表的對。

它還運行了大詞典快得多(a是字典):

>>> non_iter_timer = timeit.Timer("for k,v in a.items(): k + v", setup="a = {x:x for x in xrange(10000000)}") 
>>> non_iter_timer.repeat(3, 10) 
[25.612606023166585, 25.100741935717622, 24.840450306339463] 

>>> iter_timer = timeit.Timer("for k,v in a.iteritems(): k + v", setup="a = {x:x for x in xrange(10000000)}") 
>>> iter_timer.repeat(3, 10) 
[9.26259596885518, 9.198298194571748, 9.77466250122282]