Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将输入拆分为行_Python - Fatal编程技术网

在python中将输入拆分为行

在python中将输入拆分为行,python,Python,我正在努力解决这个问题。我认为我有正确的算法,这不是问题的重点。这个问题有一个奇怪的输入文件。一个测试用例的输入应为 n a1 a2 a3…an。(所有ints) 这里的问题是,在a[i]s之间有离群的换行符等。我需要能够跳过这些换行符,在一个地方收集属于一个测试用例的所有a[I]。我怎么知道这些?一系列WAs和运行时错误,加上一些论坛研究。我有下面的python代码来尝试这样做,除了我似乎在关键的地方犹豫不决,只是无法完成它。我希望在输入读取结束时的列表行[]中有适当的输入行 有人能告诉我我的

我正在努力解决这个问题。我认为我有正确的算法,这不是问题的重点。这个问题有一个奇怪的输入文件。一个测试用例的输入应为 n a1 a2 a3…an。(所有ints)

这里的问题是,在a[i]s之间有离群的换行符等。我需要能够跳过这些换行符,在一个地方收集属于一个测试用例的所有a[I]。我怎么知道这些?一系列WAs和运行时错误,加上一些论坛研究。我有下面的python代码来尝试这样做,除了我似乎在关键的地方犹豫不决,只是无法完成它。我希望在输入读取结束时的列表行[]中有适当的输入行

有人能告诉我我的错误吗。?或者建议一个更好的方法?。提前谢谢

import sys
#data = sys.stdin.readlines()
#lines = inp.split('\n')
data = sys.stdin.read()
pos = 0
lno = 0

lines = []
while pos<len(data):
    while not data[pos].isdigit():
                   pos = pos + 1
num =data[pos]
print num
cur = pos + 1
numbers_collected = 0

x = [] # temp list
y = []
while numbers_collected < num:

    if cur<len(data) and data[cur].isdigit():
        y.append(data[cur])
        cur = cur + 1
        numbers_collected += 1
    else:
        if cur<len(data)and numbers_collected < num:
            cur = cur + 1
        else:
            break
print x
pos = cur
x.extend(y)
lines.extend(x)



for line in lines:
    print line
导入系统 #data=sys.stdin.readlines() #lines=inp.split('\n') data=sys.stdin.read() pos=0 lno=0 行=[]
而pos这是否有助于回答您的问题

In [1]: s1 = "1\n2\n\n3\n\n\n4\n\n\n\n5\n\n\n\n\n6"

In [2]: s1
Out[2]: '1\n2\n\n3\n\n\n4\n\n\n\n5\n\n\n\n\n6'

In [3]: s1.splitlines()
Out[3]: ['1', '2', '', '3', '', '', '4', '', '', '', '5', '', '', '', '', '6']

In [4]: [elem for elem in s1.splitlines() if elem]
Out[4]: ['1', '2', '3', '4', '5', '6']

如果看不到示例输入,就很难回答这个问题。但是,没有提供示例输入,因此OP无法提供不可用的内容。

这有助于回答您的问题吗

In [1]: s1 = "1\n2\n\n3\n\n\n4\n\n\n\n5\n\n\n\n\n6"

In [2]: s1
Out[2]: '1\n2\n\n3\n\n\n4\n\n\n\n5\n\n\n\n\n6'

In [3]: s1.splitlines()
Out[3]: ['1', '2', '', '3', '', '', '4', '', '', '', '5', '', '', '', '', '6']

In [4]: [elem for elem in s1.splitlines() if elem]
Out[4]: ['1', '2', '3', '4', '5', '6']

如果看不到示例输入,就很难回答这个问题。但是,没有提供示例输入,因此OP无法提供不可用的内容。

类似的内容可以帮助:

numbers = map(int, sys.stdin.read().split())
#numbers = [1,2,3,4,5]

这是一个快速而肮脏的解决方案,因为它将所有空格视为分隔符。

类似的内容可以帮助:

numbers = map(int, sys.stdin.read().split())
#numbers = [1,2,3,4,5]

这是一个快速而肮脏的解决方案,因为它将所有空格视为分隔符。

spoj问题表示每个游戏只有一个输入行:

for line in sys.stdin:
    n, *piles = map(int, line.split())
    assert len(piles) == n
让我们假设在同一个游戏中,数字之间可能有换行符:

numbers = (int(s) for line in sys.stdin for s in line.split() if line.strip())
for n in numbers:
    piles = list(itertools.islice(numbers, n))
    assert len(piles) == n

spoj问题表明,每个游戏只有一条输入线:

for line in sys.stdin:
    n, *piles = map(int, line.split())
    assert len(piles) == n
让我们假设在同一个游戏中,数字之间可能有换行符:

numbers = (int(s) for line in sys.stdin for s in line.split() if line.strip())
for n in numbers:
    piles = list(itertools.islice(numbers, n))
    assert len(piles) == n

在这个问题上,你们应该提供一个输入和输出的样本。事情是,我并没有给你们看样本输入,只是从别人那个里得到了一些建议。抱歉。如果您没有样本输入或预期输出,您如何知道它的用途,更不用说我们了?@Lattyware。有一个spoj论坛。。你可以在那里讨论问题。我已经在我的帖子中清楚地说明了@佛罗多,你没有说得很清楚,也没有提供任何有助于回答一个好问题的信息。不需要(也没有人会费心)去另一个论坛讨论这个问题。你应该在这个问题中提供一个输入和输出的样本。问题是,我没有样本输入给你们看,只是从其他人那里得到的建议。抱歉。如果您没有样本输入或预期输出,您如何知道它的用途,更不用说我们了?@Lattyware。有一个spoj论坛。。你可以在那里讨论问题。我已经在我的帖子中清楚地说明了@佛罗多,你没有说得很清楚,也没有提供任何有助于回答一个好问题的信息。不需要(也没有人会费心)去另一个论坛讨论这个问题。事实并非如此。论坛和我过去几个小时的尝试都证实了这一点。@frodo:我添加了忽略换行符的变体。论坛和我过去几个小时的尝试都证实了这一点。@frodo:我添加了忽略换行符的变体。我想我现在明白了。比我之前想的容易。谢谢。我想我现在明白了。比我之前想的容易。