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

Python初学者如何提取列表中字典的数值并转为整数列表?

解决方法

你的代码当前输出嵌套列表的原因是,list(element.values())会把每个字典的 value 转成单元素列表(比如['1']),然后直接添加到values里,而且值还是字符串类型。要得到目标的整数列表,只需要两步调整:取出单元素列表里的字符串,再把它转成整数。

方法一:修改原循环(最直观)

直接在原代码基础上调整,先拿出字符串值,转成整数再添加:

my_list=[
     {"first":"1"}, 
     {"second": "2"}, 
     {"third": "1"}, 
     {"four": "5"}, 
     {"five":"5"}, 
     {"six":"9"},
     {"seven":"7"}
    ]

values = []

for element in my_list:
    # 取出字典里的唯一字符串值
    str_val = list(element.values())[0]
    # 转为整数后加入列表
    values.append(int(str_val))

print(values)  # 输出: [1,2,1,5,5,9,7]

方法二:用列表推导式(更简洁)

如果想简化代码,可以用Python的列表推导式一步完成:

my_list=[
     {"first":"1"}, 
     {"second": "2"}, 
     {"third": "1"}, 
     {"four": "5"}, 
     {"five":"5"}, 
     {"six":"9"},
     {"seven":"7"}
    ]

values = [int(list(item.values())[0]) for item in my_list]
print(values)  # 输出: [1,2,1,5,5,9,7]

方法三:避免转列表(效率稍高)

因为每个字典只有一个键值对,还可以用next(iter(element.values()))直接取出值,不用转成列表:

my_list=[
     {"first":"1"}, 
     {"second": "2"}, 
     {"third": "1"}, 
     {"four": "5"}, 
     {"five":"5"}, 
     {"six":"9"},
     {"seven":"7"}
    ]

values = []

for element in my_list:
    str_val = next(iter(element.values()))
    values.append(int(str_val))

print(values)  # 输出: [1,2,1,5,5,9,7]

对应的列表推导式版本:

values = [int(next(iter(item.values()))) for item in my_list]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:31:20