【问题标题】:How can I return a number between commas? [duplicate]如何返回逗号之间的数字? [复制]
【发布时间】:2021-02-09 21:35:03
【问题描述】:

我有一个包含素数列表的文本文件,但是,它们在每一行的两个逗号之间,如下所示:

1, 2, 2
2, 3, 1
3, 5, 2
4, 7, 2
...

如何编写代码以返回第 n 个素数,或者等效地,返回第 n 行两个逗号之间的素数?

【问题讨论】:

  • .split().strip() 是你的朋友。
  • 您需要将文本分成几部分。你搜索过这个问题吗?结果如何?
  • 您可能还想查看使用comma separated value (csv) support in Python 读取文本文件并以这种方式构建素数列表。如果您试一试,我们可以提供更多反馈。
  • 请从intro tour 重复on topichow to ask。 “告诉我如何解决这个编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后然后就您的算法或技术提出一个具体的问题。 Stack Overflow 无意取代现有的文档和教程。

标签: python list search


【解决方案1】:
def n_prime(n):
  with open('file.txt','r') as f:
    for i, line in enumerate(f):
      if i == n:
        return line.split(',')[1].strip()

print(n_prime(0)) # 2
print(n_prime(1)) # 3
print(n_prime(2)) # 5
print(n_prime(3)) # 7

输入:file.txt

1, 2, 2
2, 3, 1
3, 5, 2
4, 7, 2

【讨论】:

  • 您的代码适用于列表中的每一行,我该如何为特定行执行此操作?
  • @OrdpT 我已经编辑了我的答案。您只需执行prime_list[n] 即可从文件中获取nth 质数。
  • 这是一种有趣的方式,但我不相信它是有效的,因为我正在处理一个包含 100,000 个素数的列表
  • @OrdpT 要读取文件中的一行,您只能在读取它之前的所有行之后才能执行此操作。除了计算每一行,直到您到达要处理的行,没有其他方法。所有图书馆都这样做
  • 确实有帮助!谢谢!
猜你喜欢
  • 2019-10-16
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 2013-06-01
  • 1970-01-01
  • 2012-10-31
相关资源
最近更新 更多