You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表追加字典异常:仅添加字典键而非完整字典

问题修复:向列表追加字典而非字典键

你的代码问题出在gamers_list += {...}这一行:当对列表使用+=操作符时,右侧的可迭代对象(这里是字典)会被拆解为单个元素(字典的键)逐个添加到列表中,所以最终输出的是字典的键列表。

修复方案1:使用append()方法直接追加字典

append()方法会把传入的整个对象作为单个元素添加到列表末尾,正好符合你的需求:

def add_gamer(gamer, gamers_list):
    if 'name' in gamer and 'availability' in gamer:
        gamers_list.append({'name': gamer['name'], 'availability': gamer['availability']})
    return gamers_list

gamers = []
kimberly = {'name': 'Kimberley', 'availability': ['Mondays', 'Tuesady', 'Fridays']}

print(add_gamer(kimberly, gamers))

修复方案2:将字典包裹在列表中再用+=

如果坚持使用+=,需要把字典放到一个列表里,这样+=会把整个字典作为单个元素添加:

def add_gamer(gamer, gamers_list):
    if 'name' in gamer and 'availability' in gamer:
        gamers_list += [{'name': gamer['name'], 'availability': gamer['availability']}]
    return gamers_list

gamers = []
kimberly = {'name': 'Kimberley', 'availability': ['Mondays', 'Tuesady', 'Fridays']}

print(add_gamer(kimberly, gamers))

两种方案运行后都会输出你期望的结果:

[{'name': 'Kimberley', 'availability': ['Mondays', 'Tuesady', 'Fridays']}]

内容的提问来源于stack exchange,提问作者Ngelakanyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 15:39:54