我想从那里读取素数文件https://primes.utm.edu/lists/small/millions/并将其传输到列表中
下面的文件示例: -跳过前4行 -读取8个整数并将其放入列表中 -跳过下一行 -读取8个整数并将其添加到先前创建的列表中 .. -跳过下一行 -读取8个整数并将其添加到先前创建的列表中 .. 直到到达文件末尾。 欢迎任何建议和帮助
为什么??我想检查第n个是什么素数(示例“13”是所创建列表的第6个):这很可能比从那里连续使用函数primepihttps://docs.sympy.org/latest/modules/ntheory.html#sympy.ntheory.generate.primepi(primepi(13)将返回6)更快
典型文件:
The First 1,000,000 Primes (from primes.utm.edu).. this is the first lineof the file
2 3 5 7 11 13 17 19
23 29 31 37 41 43 47 53
59 61 67 71 73 79 83 89
97 101 103 107 109 113 127 131
137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223
更新:此处支持后的代码
def prime_pi(prime,prime_list):
return 1+prime_list.index(prime)
#
if __name__=="__main__":
#
with open("/home/family/Downloads/primes1_short.txt", "r") as f:
primelistfile = f.read()
primeintegerlist = primelistfile[primelistfile.index("\n"):]
primeintegerlist = primeintegerlist.replace("\n", " ")
primeintegerlist = primeintegerlist.split(" ")
primeintegerlist = list(set(primeintegerlist)) # Eliminate duplicates
primeintegerlist.remove("") # Eliminate last empty string
primeintegerlist = sorted(map(int, primeintegerlist))
print(primeintegerlist)
print('29 is the', (primeintegerlist.index(29))+1,'th prime')
prime_example = 29
print(prime_pi(prime_example,primeintegerlist))
#
您需要做的第一件事是打开文件
删除第一行
删除换行符并将其替换为空格
使用split方法将字符串转换为字符串列表
删除原始文件中两个连续空格导致的空字符串
订购
相关问题 更多 >
编程相关推荐