如何从字符串的每一行中提取整数并将其保存到列表中?
你的原有思路存在两处问题,无法实现需求:
- 用
split()默认按空白拆分的逻辑,把同一行内表示同一个数值的544和000拆成了两个独立元素,000转换为整数后得到0,自然无法得到合并后的544000这类结果 - 第三行的数值前后带有特殊字符
‘和.,isdigit()判断会返回False,导致7000完全没有被提取到
修复后的实现代码
推荐优先使用按行处理的方案,更贴合你每行对应一个整数的需求,稳定性更高:
numbers = [] # 先按换行符拆分原始字符串,逐行处理 for line in data.splitlines(): # 提取当前行所有数字字符,拼接为完整的数字字符串 digit_str = ''.join([char for char in line if char.isdigit()]) if digit_str: numbers.append(int(digit_str)) print(numbers) # 输出:[544000, 600000, 7000]
如果不需要严格对应行的顺序,也可以用正则快速提取:
import re # 先移除所有空格,再匹配所有连续的数字串 processed_data = data.replace(' ', '') numbers = [int(num) for num in re.findall(r'\d+', processed_data)]
内容的提问来源于stack exchange,提问作者Kalween
相关产品推荐
相关产品推荐

