在python中的STDIN

时间:2014-05-02 06:33:21

标签: python stdin

我学习python,我的任务很困难。

任务: 输入2字符串:
5
2 3 9 2 9
样本输出:
2 2 3 9 9

我知道如何排序,但输入有问题。测试用例输入使用stdin。我写这个:

import sys

input = sys.stdin.read()
tokens = input.split()

n = int(tokens[0])

A = tokens[1:len(tokens)]
B = []

M = 10

for i in range(M):
  B.append(0)

for j in range(n):
  B[int(A[j])] = B[int(A[j])] + 1

k = 0
for i in range(M):
  for j in range(B[i]):
    A[k] = i
      k = k + 1

print(A)  

并获得错误" out range"对于     B [int(A [j])] = B [int(A [j])] + 1

1 个答案:

答案 0 :(得分:0)

而不是

input = sys.stdin.read()
tokens = input.split()

n = int(tokens[0])

A = tokens[1:len(tokens)]
B = []

使用以下代码

input_n = sys.stdin.readline()
n = int(input_n)
input_tokens = sys.stdin.readline()
tokens = input_tokens.split()

A = tokens[0:len(tokens)]
B = []

您在不同的行上输入n和令牌。所以两次调用sys.stdin.readline()