2016-11-10 46 views
0

如何構建for loop以打印此嵌套的dictionary中的所有float值,對於任何userPython - 從嵌套dicitonary獲取值

plist = {'user1': {u'Fake Plastic Trees': 1.0, u'The Numbers': 1.0, u'Videotape': 1.0}} 

所需的輸出= [1.0, 1.0, 1.0]

+0

已更正。謝謝。 –

+0

內部字典中的值已經浮動,你需要什麼? –

+0

@data_garden:你沒有給我們任何預期的輸出。另外,你的字典結構有多少變化?可以有任意級別的嵌套嗎? –

回答

0

有一個dict.values()方法,你想要做什麼。

a_dict = {'user1': {u'Fake Plastic Trees': 1.0, u'The Numbers': 1.0, u'Videotape': 1.0}} 
first_key = list(a_dict.keys())[0] 
values = a_dict[first_key].values() 
print(list(values)) 

輸出

[1.0, 1.0, 1.0] 

編輯:如果您想返回所有值的一個扁平列表中對這一問題的意見中提到的所有按鍵,你可以這樣做:

a_dict = { 
    'user1': {u'Fake Plastic Trees': 1.0, u'The Numbers': 2.0, u'Videotape': 3.0}, 
    'user2': {u'Foo': 4.0, u'Bar': 5.0}, 
} 
values = [] 
for k in a_dict.keys(): 
    for v in a_dict[k].values(): 
     values.append(v) 
print(values) 

輸出

[4.0, 5.0, 3.0, 1.0, 2.0] 
+0

如果您的問題有關此答案的某些內容不正確,請隨時添加註釋,以便澄清。 –

+0

很抱歉,我沒有降低它的評分。但我已經編輯了這個問題,所以它不能依賴於特定的'string'作爲外部'key' –

+0

@data_garden我已經更新了答案,以便根據更新後的問題從字典中的第一個鍵拉出。請注意,這假設字典中只有一個鍵,我相信這是通過閱讀您對該問題的評論的情況。 –

0

使用dict.values()來獲得您想要的行爲。

>>> plist = {'playlist': {u'Fake Plastic Trees': 1.0, u'The Numbers': 1.0, u'Videotape': 1.0}} 
    >>> list(plist['playlist'].values()) 
    [1.0, 1.0, 1.0] 
    >>>