【问题标题】:input with delimiters in pythonpython中带分隔符的输入
【发布时间】:2012-10-17 18:19:55
【问题描述】:

我对以下规范有疑问:

输入:

第一行包含一个整数 N ,即给定序列中的元素数。 然后是 N 个整数 A1, A2.... An, Ai 是给定序列的第 i 个元素。这些数字可以用空格分隔,也可以用换行符分隔。

如何处理这样的输入? 我尝试了以下方法,但它仅适用于空格分隔的元素。当与换行符分隔的元素一起使用时,分级机会抛出“超时”

import sys
counter=0
A=[]
for line in sys.stdin:
    if counter!=0:
        A+=[int(Ai) for Ai in line.split()]
    else:
        N=int(line)
        counter+=1

【问题讨论】:

  • line.split() 也适用于 , 等分隔符。
  • 是的,但在每一行我要么只有空格,要么只有一个数字。没有其他分隔符
  • 据我所知,您的代码工作正常(只要第一行仅包含 1 个数字)并且只要将数据放入 sys.stdin(并且 sys.stdin 正确终止)...当然,您将获得的不仅仅是 N 个元素...

标签: python input stdin


【解决方案1】:

假设您正在读取文件(sys.stdin 也是一个文件):

f = open('path/to/file')
N = int(f.readline().strip())
A = []
while len(A) < N:
    A.extend(int(i) for i in f.readline().strip().split())

希望对你有帮助

【讨论】:

  • 你不需要打开sys.stdin。它已经是一个打开的文件
  • 所以我写: N = int(sys.stdin.readline().strip()) A = [] 而 len(A)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 2019-05-28
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多