将字符串列表转为整数列表:代码仅添加最后元素的问题排查
问题分析与解决
问题根源
你代码里的核心问题是把numbers_list = []放在了for循环内部。每次循环时,都会重新创建一个空列表,之前循环添加的元素都会被丢弃,最后自然只剩最后一次循环添加的元素。
修正后的代码
方式1:将列表初始化移到循环外
numbers = "9, 223, 372, 036, 854, 775, 807" split_numbers = numbers.split(", ") print(split_numbers) numbers_list = [] # 初始化移到循环外 for number_string in split_numbers: number = int(number_string) numbers_list.append(number) print(numbers_list)
方式2:用列表推导式更简洁
Python里处理这种批量转换场景,列表推导式是更高效简洁的写法:
numbers = "9, 223, 372, 036, 854, 775, 807" numbers_list = [int(num) for num in numbers.split(", ")] print(numbers_list)
额外说明
注意原字符串里的036转成整数后会变成36,因为整数不保留前导零。如果需要保留前导零的格式,你可以选择保留字符串类型,或者转成带前导零的格式化字符串(比如用f"{int(num):03d}"处理)。
内容的提问来源于stack exchange,提问作者Archis Likhitkar
相关产品推荐
相关产品推荐

