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

如何在Python中将逗号分隔的数字字符串转换为整数列表?

解决逗号分隔数字字符串转整数列表的问题

嘿,我完全懂你碰到的麻烦——直接用list()处理字符串的话,它会把每个字符都拆成列表元素,所以才会得到一堆零散的数字字符和逗号,根本不是想要的整数列表。别担心,有几个简单的方法能搞定这个需求:

方法一:列表推导式(直观易懂)

首先用split(',')把原字符串按逗号分割成包含数字字符串的列表,再通过列表推导式把每个字符串转换成整数:

# 原字符串
num_str = '128,120,119,118,119,118,120,116,116,120,128,121'
# 第一步:按逗号分割成字符串列表
str_list = num_str.split(',')
# 第二步:逐个转成整数
int_list = [int(num) for num in str_list]
# 输出结果:[128, 120, 119, 118, 119, 118, 120, 116, 116, 120, 128, 121]

也可以把两步合并成一行,更简洁:

int_list = [int(num) for num in '128,120,119,118,119,118,120,116,116,120,128,121'.split(',')]

方法二:使用map()函数(更简洁)

map()函数可以把一个函数应用到可迭代对象的每个元素上,这里我们用int()函数处理分割后的每个字符串,最后转成列表:

num_str = '128,120,119,118,119,118,120,116,116,120,128,121'
int_list = list(map(int, num_str.split(',')))

这个方法和上面的效果完全一样,代码更短,适合喜欢简洁写法的场景。

为什么之前的list()不行?

当你直接对字符串用list()时,Python会迭代字符串的每一个字符,不管是数字还是逗号,都会被拆成单独的列表元素,所以才会得到['1', '2', '8', ',', ...]这种不符合预期的结果。正确的思路是先把完整的数字字符串从原串中拆分出来,再转换类型。

内容的提问来源于stack exchange,提问作者陳俊良

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:05:34