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

从嵌套字典提取两个列表:编程新手的技术问询

从嵌套字典提取列表的解决方案

嘿,作为编程新手,处理嵌套字典确实需要一点点小技巧,我来帮你搞定这个问题!先假设你想要提取的是玩家ID列表和玩家全名列表(如果是其他需求,你可以随时调整下面的代码~)

首先,先把你的字典补全(保持原有的结构):

player_dict = {
    'player2': {'player': 'player2', 'firstname': 'Ross', 'lastname': 'Estrada'},
    'player3': {'player': 'player3', 'firstname': 'Melvin', 'lastname': 'Graves'},
    'player0': {'player': 'player0', 'firstname': 'Alfredo', 'lastname': 'Hopkins'},
    'player1': {'player': 'player1', 'firstname': 'Jay', 'lastname': 'Ramos'},
    'player6': {'player': 'player6', 'firstname': 'Claudia', 'lastname': 'Brown'},
    'player7': {'player': 'player7', 'firstname': 'Luna', 'lastname': 'Carter'}
}

方法1:用列表推导式快速提取(推荐)

列表推导式是Python里处理这种批量数据提取的高效方式,代码简洁易懂。

提取玩家ID列表

有两种方式,如果你确定字典的key就是玩家ID,直接取keys转成列表就行:

player_ids = list(player_dict.keys())
print(player_ids)
# 输出: ['player2', 'player3', 'player0', 'player1', 'player6', 'player7']

如果想从每个子字典的player字段提取(更严谨,避免key和字段不一致的情况):

player_ids = [player_info['player'] for player_info in player_dict.values()]

提取玩家全名列表

把每个子字典里的firstname和lastname拼接起来:

full_names = [f"{info['firstname']} {info['lastname']}" for info in player_dict.values()]
print(full_names)
# 输出: ['Ross Estrada', 'Melvin Graves', 'Alfredo Hopkins', 'Jay Ramos', 'Claudia Brown', 'Luna Carter']

方法2:用循环逐步提取(适合新手理解)

如果你觉得列表推导式有点抽象,用普通的for循环也能实现,每一步都很清晰:

# 提取玩家ID列表
player_ids = []
for info in player_dict.values():
    player_ids.append(info['player'])

# 提取玩家全名列表
full_names = []
for info in player_dict.values():
    full_name = info['firstname'] + ' ' + info['lastname']
    full_names.append(full_name)

如果你的需求是提取其他列表(比如单独的名字列表、姓氏列表),只需要修改循环或列表推导式里的字段就行啦~

内容的提问来源于stack exchange,提问作者Ross O'Reilly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:40:35