如何在Python中将存储素数的CSV文件转换为可索引的整数列表
素数CSV文件转整数列表解决方案
原有代码问题分析
- CSV分隔符配置错误:你设置了
delimiter=' '(空格作为分隔符),但你的素数文件实际以英文逗号,为分隔符,导致整行素数被识别为单个字符串元素 - 缺少类型转换:读取得到的元素均为字符串格式,未转换为整数
- 列表结构错误:直接将
csv.reader返回的行列表append到输出列表,导致嵌套结构
可用修改方案
方案1:基于原有csv库逻辑修改
import sys import csv csv.field_size_limit(sys.maxsize) output = [] with open('primes1.csv', 'r') as csvfile: # 替换分隔符为英文逗号 reader = csv.reader(csvfile, delimiter=',') for row in reader: # 遍历行内每个元素,转换为整数后存入输出列表 output.extend([int(prime_str.strip()) for prime_str in row if prime_str.strip()])
方案2:轻量实现(更适合1000万级素数的高性能转换)
你的文件仅为纯逗号分隔的素数,无需引入csv库即可实现更高效率的转换:
with open('primes1.csv', 'r') as f: output = [int(prime.strip()) for prime in f.read().split(',') if prime.strip()]
验证方法
Python列表下标从0开始计数,你要获取第三个值为5的素数,调用output[2]即可得到正确结果。
内容的提问来源于stack exchange,提问作者Julius Monk
相关产品推荐
相关产品推荐

