如何去除字符串中的逗号且不引入空格以转换为int类型
解决方法
你的代码存在两个核心问题:
strip(',')仅能移除字符串首尾的逗号,无法处理数值中间的逗号(比如1,234这类格式里的逗号)- 用
split(" ")按单个空格分割,会因连续空格产生空元素,导致取val[1]时可能拿到空字符串或带空格的无效内容
修正后的代码
parse = g.readlines()[8:] for x in parse: # 全局移除所有逗号,再按任意空白符分割(自动处理多空格、制表符等) cleaned_parts = x.replace(',', '').split() # 避免格式异常导致索引越界 if len(cleaned_parts) >= 2: # 直接转成int存入列表 num = int(cleaned_parts[1]) i15.append(num) # 最终求和 total_sum = sum(i15)
关键改动说明
replace(',', ''):全局移除所有位置的逗号,彻底解决带逗号的数值格式化问题split():不带参数的分割会自动识别任意数量的空白字符,同时忽略首尾空白,不会产生空元素- 增加长度判断:避免因数据行格式异常导致的索引报错
- 提前转int:直接将处理后的数值转为整数存入列表,省去后续二次转换的步骤
简洁写法(列表推导式)
如果数据格式稳定,可一行完成数据提取:
with open('你的文件名.txt', 'r') as g: i15 = [int(line.replace(',', '').split()[1]) for line in g.readlines()[8:] if len(line.replace(',', '').split()) >= 2] total_sum = sum(i15)
内容的提问来源于stack exchange,提问作者noobiecoder
相关产品推荐
相关产品推荐

