Python如何从字典列表中提取多个指定键的对应值并配对展示
解决方案
你可以直接在单次列表推导遍历中为每个字典构造包含两个目标字段的子列表,写法如下:
new_list = [[i["competition_name"], i["season_name"]] for i in x] # 如果需要外层是元组格式,可追加转换逻辑 new_tuple = tuple(new_list)
运行后输出结果完全符合你的需求:
(['Champions League', '2018/2019'], ['Champions League', '2017/2018'], ['FIFA World Cup', '2018'])
原代码问题说明
你之前的写法是把两个独立的列表推导式用逗号分隔,Python会默认将这类并列表达式封装为元组,所以得到的是两个分别存储所有competition_name和所有season_name的列表,字段没有按条目对应绑定。
可选优化方案
如果希望保留字段名标识,方便后续逻辑取值、可读性更强,也可以输出字典结构:
new_list = [{k: i[k] for k in ("competition_name", "season_name")} for i in x]
输出为:
[{'competition_name': 'Champions League', 'season_name': '2018/2019'}, {'competition_name': 'Champions League', 'season_name': '2017/2018'}, {'competition_name': 'FIFA World Cup', 'season_name': '2018'}]
内容的提问来源于stack exchange,提问作者J.Raze
相关产品推荐
相关产品推荐

