通常,当我必须在一行上处理多个整数时,请执行以下操作:
line = input().split()
... work with the integers here ...
这从来都不是问题,但是现在我必须读取一行,最多包含10 ^ 6个整数,并且其中一个在[0,10 ^ 6]范围内。
每次提交解决方案给在线法官时,都会给我一个运行时错误,并在错误日志上显示:
我的问题是:是否有一种通用的方法来读取部分输入并将其中一些保留在stdin或以某种方式将我的input()限制为空格?
在Python3文档上或在StackOverflow上搜索时,我什么都没找到!
PS:您可以在这里找到问题https://www.urionlinejudge.com.br/judge/en/problems/view/1973
最佳答案
使用sys.stdin.read
控制您一次读取的字符数:
import sys
a = sys.stdin.read(32)
assert len(a) <= 32
断言永远不会触发。
注意:请注意,指定大小时可能会切掉一些整数。例如,如果您在输入
read(4)
上输入12 3456
,则当它实际上是3
时,您可能会得到3456
作为第二个数字。也要注意性能问题。
关于python - 限制input()函数上的字符数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50264768/