[英]From a file containing prime numbers to a list of integers on Python
为了计算出关于孪生素数猜想的一些渐近行为,我需要获取一个原始文件( .csv
或.txt
)并将该数据转换为 python 中的一个列表,我可以通过指向它的索引号来访问该列表。
也就是说,我在.csv
文件中有一个很大的(约 1000 万个数字)素数列表,可以说这是该列表:
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83
我正在尝试制作以下内容
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83]
为了检查,列表中的第三个元素是 5。
我采取的方法如下:
import sys
import csv
# The csv file might contain very huge fields, therefore increase the field_size_limit:
csv.field_size_limit(sys.maxsize)
with open('primes1.csv') as csvfile:
reader = csv.reader(csvfile, delimiter=' ')
output = []
for i in reader:
output.append(i)
然后,如果打印,
for rows in output:
print(rows)
我正进入(状态
['2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83'].
如何解决这个问题? 非常感谢。
也许这个:
with open("primes1.csv", "r") as f:
lst = [int(i) for i in f.read().split(",")]
您不需要为此使用 csv 阅读器(如其他答案所示),但如果您愿意,您可以这样做,只阅读第一行。 您的代码正在迭代行并将它们添加到输出列表中,但您需要仅在第一行中迭代列。 next(reader)
调用只返回第一行。
with open('test.csv','r') as csvFile:
reader = csv.reader(csvFile, delimiter=',')
output = [int(i) for i in next(reader)]
# alternate approach
# output = [int(i) for i in csvFile.read().strip().split(',')]
print(output)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.