Python-增量字典值

Python-增量字典值,python,dictionary,increment,Python,Dictionary,Increment,我有一本嵌套的词典: playlist = {u'user1': {u'Roads': 1.0, u'Pyramid Song': 1.0, u'Go It Alone': 1.0}} 我试图通过1.0增加它的float值: user = playlist.keys()[0] counts = playlist[user].values() for c in counts: c += 1.0 我已经走了这么远 现在,我如何使用递增值更新字典?要使用不同嵌套级别更新嵌套字典中的浮点

我有一本嵌套的
词典

 playlist =  {u'user1': {u'Roads': 1.0, u'Pyramid Song': 1.0, u'Go It Alone': 1.0}}
我试图通过
1.0
增加它的
float
值:

user = playlist.keys()[0]
counts = playlist[user].values()
for c in counts:
    c += 1.0
我已经走了这么远


现在,我如何使用
递增值
更新
字典

要使用不同嵌套级别更新嵌套字典中的浮点值,需要编写递归函数遍历数据结构,当值处于浮动状态时更新这些值,或者在有字典时调用函数:

def update_floats(d, value=0):
    for i in d:
        if isinstance(d[i], dict):
            update_floats(d[i], value)
        elif isinstance(d[i], float):
            d[i] += value

update_floats(playlist, value=1)
print(playlist)
# {'user1': {'Go It Alone': 2.0, 'Pyramid Song': 2.0, 'Roads': 2.0}}

要使用不同的嵌套级别更新嵌套字典中的浮点值,需要编写递归函数遍历数据结构,在值为浮点时更新值,或者在有字典时调用函数:

def update_floats(d, value=0):
    for i in d:
        if isinstance(d[i], dict):
            update_floats(d[i], value)
        elif isinstance(d[i], float):
            d[i] += value

update_floats(playlist, value=1)
print(playlist)
# {'user1': {'Go It Alone': 2.0, 'Pyramid Song': 2.0, 'Roads': 2.0}}

如果播放列表词典仅嵌套一层,则可以使用以下代码段:

for user_key in playlist.keys():
    for song_key in playlist[user_key].keys():
        playlist[user_key][song_key] += 1

如果播放列表词典仅嵌套一层,则可以使用以下代码段:

for user_key in playlist.keys():
    for song_key in playlist[user_key].keys():
        playlist[user_key][song_key] += 1

请不要对非代码的东西使用代码标记。我不知道你在说什么..你可以这样做
播放列表['user1']['Roads']+=1
。但不确定你想做什么?你想同时增加所有内容,还是只增加选定的值?请不要对非代码的内容使用代码标记。我不知道你在说什么..你可以这样做
播放列表['user1']['Roads']+=1
。但不确定你想做什么?您想同时增加所有内容,还是只增加选定的值?在您的函数中,是否有办法调整它,使其仅增加
d
中已存在的曲目(
dict
)的值?如果我加载新的
播放列表词典
,当前就是这样做的,或者你想给出更多的描述以便我清楚地理解你?我在这里生成新的播放列表,新的结果总是以递增的值打印相同的播放列表。我的意思是,以前不存在的音轨不会作为值为1.0的新键添加到字典中。但这需要另一个函数我是否应该问另一个问题并标记您?在您的函数中,是否有一种方法可以调整它,使其仅为
d
中已经存在的曲目(
dict
)增加值?如果我加载新的
播放列表词典
,当前就是这样做的,或者你想给出更多的描述以便我清楚地理解你?我在这里生成新的播放列表,新的结果总是以递增的值打印相同的播放列表。我的意思是,以前不存在的音轨不会作为值为1.0的新键添加到字典中。但这需要另一个功能我应该问另一个问题并标记你吗?