2016-11-07 44 views
1

我有這個dictionaryPython的 - '統一' 對象有沒有屬性 '值'

playlists = { 
    u'user1': {u'Make You Feel My Love': 1.0, u'I See Fire': 1.0, u'High And Dry': 1.0, u'Fake Plastic Trees': 1.0, u'One': 1.0, u'Goodbye My Lover': 1.0, u'No Surprises': 1.0}, 
    u'user2': {u'Fake Plastic Trees': 1.0, u'High And Dry': 1.0, u'No Surprises': 1.0}, 
    u'user3': {u'Codex': 1.0, u'No Surprises': 1.0, u'O': 1.0, u'Go It Alone': 1.0}, 
    u'user4': {u'No Distance Left To Run': 1.0, u'Running Up That Hill': 1.0, u'Fake Plastic Trees': 1.0, u'The Numbers': 1.0, u'No Surprises': 1.0}, u'user5': {u'Wild Wood': 1.0, u'You Do Something To Me': 1.0, u'Reprise': 1.0}} 

我試圖獲取float values

有:

print playlist.keys()[0] 
print [p for p in playlist.values()[0]] 

我成功了。

但如果我嘗試[p.values() for p in playlist.values()],我得到以下錯誤:

AttributeError: 'unicode' object has no attribute 'values'

如何獲取values

+3

這是'playlists'不是'播放列表',它對我來說工作得很好。 – Kasramvd

+0

'[p for playlist.values()[0] .values()]'獲得values中的值=>返回浮點數。 –

+1

如果出現該錯誤,則「播放列表」必須是不同的變量。它適用於該字典,但前提是字典的變量名稱和列表理解中的變量名稱相同。 – zondo

回答

0

您將您的dict定義爲「播放列表」(複數),但是在您稍後的代碼片段中,您將使用名爲「播放列表」(單數)的變量。 FWIW,利用原有playlists定義列表補償工作(或課程)完美:

>>> playlists = { 
...  u'user1': {u'Make You Feel My Love': 1.0, u'I See Fire': 1.0, u'High And Dry': 1.0, u'Fake Plastic Trees': 1.0, u'One': 1.0, u'Goodbye My Lover': 1.0, u'No Surprises': 1.0}, 
...  u'user2': {u'Fake Plastic Trees': 1.0, u'High And Dry': 1.0, u'No Surprises': 1.0}, 
...  u'user3': {u'Codex': 1.0, u'No Surprises': 1.0, u'O': 1.0, u'Go It Alone': 1.0}, 
...  u'user4': {u'No Distance Left To Run': 1.0, u'Running Up That Hill': 1.0, u'Fake Plastic Trees': 1.0, u'The Numbers': 1.0, u'No Surprises': 1.0}, u'user5': {u'Wild Wood': 1.0, u'You Do Something To Me': 1.0, u'Reprise': 1.0}} 
>>> [p.values() for p in playlists.values()] 
[[1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0], [1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]] 

督察,請了解什麼是「最小的完整和可驗證」例子的意思是......

相關問題