Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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_Dictionary - Fatal编程技术网

Python 有没有更简单的方法来分配字典并循环更新?

Python 有没有更简单的方法来分配字典并循环更新?,python,dictionary,Python,Dictionary,试图循环遍历每个键,将其添加到列表中,然后循环遍历,但失败了。我想知道是否有更好的方法来更新我的字典,而不是定义上面所有的变量并逐个更新它 nfl = dict() nfl['Tom'] = tom = dict() nfl['bob'] = bob = dict() nfl['kara'] = kara = dict() nfl['Mike'] = mike = dict() for k in data: if 'tom_score' in data[k]: <

试图循环遍历每个键,将其添加到列表中,然后循环遍历,但失败了。我想知道是否有更好的方法来更新我的字典,而不是定义上面所有的变量并逐个更新它

nfl = dict()
nfl['Tom'] = tom = dict()
nfl['bob'] = bob = dict()
nfl['kara'] = kara = dict()
nfl['Mike'] = mike = dict()

for k in data:
    if 'tom_score' in data[k]:
        <doing stuff here>
    elif 'bob'in k:
        bob.update(data[k])
    elif 'kara'in k:
        kara.update(data[k])
    elif 'mike'in k:
        mike.update(data[k])
nfl=dict()
nfl['Tom']=Tom=dict()
nfl['bob']=bob=dict()
nfl['kara']=kara=dict()
nfl['Mike']=Mike=dict()
对于k in数据:
如果数据[k]中的“tom_分数”:
elif‘bob’in k:
更新(数据[k])
elif‘kara’in k:
kara.update(数据[k])
elif‘mike’in k:
mike.update(数据[k])

假设是打字错误,
'Tom'
'Tom\u score'
应该是相同的,您可以使用
defaultdict

from collections import defaultdict

nfl = defaultdict(dict)

for k in data:
    if k in ['Tom', 'bob', 'kara', 'Mike']:
        nfl[k].update(data[k])

如果您想拥有
数据中的所有名称,而不仅仅是指定的名称,则可以跳过
if
part with names check。

我真的不明白这个问题,数据是什么样子的?如果你能通过nfl['tom']
访问它,你需要什么
tom
?我刚开始阅读+2文件。修改第一个键并将其保存为自己的键。然后使用其他键,添加/更新它们。感谢Yaroslav的帮助。