2013-08-02 75 views
0

我希望能夠創建密鑰列表對列表(我認爲這是形容我需要的解決方案最準確的方法...)如何添加一個鍵,值對到一個列表?

我的詞典列表和想補充的元素,這些字典是字典的名單(一口,我知道...)。

要做到這一點,我嘗試添加鍵,值對的列表。當我這樣做時,我得到一個語法錯誤,表面上在key:value對中的冒號上跳過。

這裏是我的代碼:

d_l[0]['abilities'] = list() 
d_l[0]['abilities'].append(abilities_m_l[job_row]['Element Name']:list()) # ability: stats about ability 

其中D_L是字典列表,「能力」是我創造的一個關鍵。

這是我的錯誤(插入符是冒號(雖然過去它的錯誤標記錯誤的位置))。

d_l[0]['abilities'].append(abilities_m_l[job_row]['Element Name']:list()) # ability: stats about ability 
                    ^
SyntaxError: invalid syntax 
logout 

如果有幫助,這是所期望的整體結構:

{ 
    'job':'clerk', 'description': 'works in a bank', 'abilities': [ 
     'math': [ 
      'imp': { 
       'Data Value': 4.5, 
       'N' : 8, 
       'S_E': 0.19     
      }, 
      'level': { 
       'Data Value': 4.75, 
       'N': 8, 
       'S_E': 0.25 
      } 
     ], 
     'english': [ 
      'imp': { 

      }, 
      'level': { 

      } 
     ], 
     'dexterity': [ 
      'imp':{ 

      }, 
      'level': { 

      } 
     ] 
    ] 
}, 

非常感謝!如果你看到在略高於我的安排很明顯的漏洞(也許我應該使用字典的能力,而不是一個列表?)請讓我知道。

回答

2

要追加一個dict - 注意{},如:

.append({abilities_m_l[job_row]['Element Name']:list()}) 

而且它更Python和高效的使用[]一個空列表...

+0

謝謝喬恩!很有幫助。爲什麼它更有效率?因爲我不叫一個函數? – goldisfine

+1

@goldisfine主要是因爲'[]'可以由編譯器優化,同時'list'可以採取迭代... –

+1

@goldisfine:是的,'名單()'是一個全局查找(尋找列表中指定的對象' '),然後調用(調用與名稱'list'關聯的對象)。 '[]'立即被視爲一個空列表對象。 –

相關問題