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

Python中如何提取列表内字典相同键对应的所有值?

实现字典列表按键拆分的方法

当然可以实现,这里提供几种简单高效的方式:

方法一:列表推导式

这是最直接易懂的写法,针对每个key单独提取:

data = [{'name': 'Alessandra', 'age': 24}, {'name': 'Sasha', 'age': 37}, {'name': 'Jason', 'age': 42}]

names = [item['name'] for item in data]
ages = [item['age'] for item in data]

print(names)  # 输出: ['Alessandra', 'Sasha', 'Jason']
print(ages)   # 输出: [24, 37, 42]

方法二:利用zip批量提取(适合多key场景)

如果需要提取的key较多,可以用这种方式一次性获取所有对应列表,避免重复遍历原数据:

data = [{'name': 'Alessandra', 'age': 24}, {'name': 'Sasha', 'age': 37}, {'name': 'Jason', 'age': 42}]

names, ages = zip(*[(item['name'], item['age']) for item in data])
# 注意zip返回的是元组,若需要列表可转成list:
names = list(names)
ages = list(ages)

print(names)  # 输出: ['Alessandra', 'Sasha', 'Jason']
print(ages)   # 输出: [24, 37, 42]

方法三:动态提取所有key对应的列表(通用写法)

如果不确定原字典有哪些key,可以动态遍历所有key来生成对应的列表:

data = [{'name': 'Alessandra', 'age': 24}, {'name': 'Sasha', 'age': 37}, {'name': 'Jason', 'age': 42}]

result = {}
for key in data[0].keys():
    result[key] = [item[key] for item in data]

names = result['name']
ages = result['age']

print(names)  # 输出: ['Alessandra', 'Sasha', 'Jason']
print(ages)   # 输出: [24, 37, 42]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:54:52