2017-02-16 60 views
0

我有一個具有相同鍵的字典列表。一些鍵具有整數值,少數具有字符串值,並且一個鍵具有用於第一詞典的設置值,並且對於所有其餘的詞典而言。在詞典中的列表中的第一詞典的基於單獨的列表更新字典列表中特定鍵的值

實施例在此發現:在詞典中的列表中的第二和第三字典的

dicts = [{'foul': 1, 'lineup': set(['Player 1', 'Player 2']), 'Date': '11/12/2016}... 

實施例:

...{'foul': 6, 'lineup': None, 'Date': '11/19/2016}, {'foul': 12, 'lineup': None, 'Date': '11/22/2016}] 

下面是一個例子列表我想用來更新這三個詞典的價值觀:

listofvals = [set('Player 4', 'Player 2'), set('Player 2', 'Player 3'), set('Player 6', 'Player 1')] 

注意不管第一個字典中的值是什麼,我想按照上面列表的順序更新字典列表中的所有字典。

,使得字典的名單返回如下:

desired_product = 
[{'foul': 1, 'lineup': set(['Player 4', 'Player 2']), 'Day': '11/12/2016}, 
{'foul': 6, 'lineup': set(['Player 2', 'Player 3']), 'Day': '11/19/2016}, 
{'foul': 12, 'lineup': set(['Player 6', 'Player 1']), 'Day': '11/22/2016}] 

我曾嘗試以下變化:

for index, d in enumerate(dicts): 
    stnt.update((k, listofvals[idx]) for k, v in stnt.iteritems() if v == None or type(v) == 'set') 

另一件事我已經試過:

for index, d in enumerate(dicts): 
    for key, val in d.interitems(): 
     setattr(d["lineup"], key, listofvals[idx]) 

回答

1
for index,d in enumerate(dicts): 
    d["lineup"] = listofvals[index] 
+0

第一個錯誤提示如下:TypeError :'set'對象不支持索引 – BSHuniversity

+0

第二個僅從val列表中返回單個玩家。 – BSHuniversity

+0

這裏有更多建議嗎? – BSHuniversity

相關問題