Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于单独的列表更新字典列表中特定键的值_Python_List_Dictionary - Fatal编程技术网

Python 基于单独的列表更新字典列表中特定键的值

Python 基于单独的列表更新字典列表中特定键的值,python,list,dictionary,Python,List,Dictionary,我有一个相同键的字典列表。一些键具有整数值,一些键具有字符串值,一个键具有第一个字典的设置值,而其余所有字典都没有设置值 词典列表中的第一个词典示例如下: dicts = [{'foul': 1, 'lineup': set(['Player 1', 'Player 2']), 'Date': '11/12/2016}... 词典列表中第二个和第三个词典的示例: ...{'foul': 6, 'lineup': None, 'Date': '11/19/2016}, {'foul': 12,

我有一个相同键的字典列表。一些键具有整数值,一些键具有字符串值,一个键具有第一个字典的设置值,而其余所有字典都没有设置值

词典列表中的第一个词典示例如下:

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')]
下面是我要用于更新这三个词典的值的示例列表:

...{'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')]
请注意,无论第一个dictionary中的值是什么,我都希望按照上面列表的顺序更新dict列表中的所有dictionary

这样,返回的词典列表如下所示:

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])

第一个给出了以下错误:TypeError:“set”对象不支持索引第二个只返回VAL列表中的一个播放器。这里还有其他建议吗?您可以打印类型listval以确认它是集合列表吗?您还可以验证dicts中的每个元素都是字典吗