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

Python中如何将字符串列表转为整数列表?千分位字符串转换报错解决

解决Python中字符串列表转整数列表的问题,包括带千分位的情况

嘿,这个问题我经常碰到,分两种场景给你拆解清楚:

一、普通纯数字字符串列表转整数列表

如果你的列表里都是不带千分位的纯数字字符串,比如 ['1222000', '234444', '12000000'],两种简单方法就能搞定:

  • 用列表推导式:
    str_list = ['1222000', '234444', '12000000']
    int_list = [int(s) for s in str_list]
    print(int_list)  # 输出: [1222000, 234444, 12000000]
    
  • 用map()函数:
    str_list = ['1222000', '234444', '12000000']
    int_list = list(map(int, str_list))
    

二、处理带千分位的字符串列表(解决你遇到的错误)

你碰到的invalid literal for int() with base 10: '1,375,178'错误,本质是int()无法识别字符串里的千分位逗号。这里有两种靠谱的解决方式:

方法1:手动移除逗号后转换

最直接的方式就是先把字符串里的逗号替换掉,再转整数,用列表推导式一行搞定:

str_list = ['1,375,178', '234,444', '12,000,000']
int_list = [int(s.replace(',', '')) for s in str_list]
print(int_list)  # 输出: [1375178, 234444, 12000000]

方法2:用locale模块解析(适配多地区数字格式)

如果以后可能遇到不同地区的数字分隔符(比如欧洲部分地区用.做千分位),可以用Python的locale模块来处理,它能自动识别对应地区的数字格式:

import locale

# 设置地区为美国(对应千分位逗号格式),Windows系统可能需要改成'English_US'
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')

str_list = ['1,375,178', '234,444', '12,000,000']
int_list = [locale.atoi(s) for s in str_list]
print(int_list)

注意:如果运行时提示locale不存在,你可以先查看系统支持的locale列表(比如Linux/macOS用locale -a命令),换成系统支持的对应地区即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:47:26