如何用python读取素数文件;转换为列表

2024-04-26 14:41:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从那里读取素数文件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))
    #

Tags: 文件the示例列表index整数prime素数
1条回答
网友
1楼 · 发布于 2024-04-26 14:41:59

您需要做的第一件事是打开文件

with open("primes1.txt", "r") as f:
  primelist = f.read()

删除第一行

p = primelist[primelist.index("\n"):]

删除换行符并将其替换为空格

p = p.replace("\n", " ")

使用split方法将字符串转换为字符串列表

p = p.split(" ")

删除原始文件中两个连续空格导致的空字符串

p = list(set(p)) # Eliminate duplicates
p.remove("") # Eliminate last empty string

订购

p = sorted(map(int,p))

相关问题 更多 >