【问题标题】:STDIN in pythonpython中的标准输入
【发布时间】:2014-05-02 06:33:21
【问题描述】:

我学习 python,但我的任务对我来说很困难。

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

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

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)  

并得到错误“超出范围” B[int(A[j])] = B[int(A[j])] + 1

【问题讨论】:

  • 5 是干什么用的? (在输入中)
  • 数组元素个数

标签: python stdin


【解决方案1】:

代替

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() 两次

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 2016-07-11
    • 2012-01-08
    • 1970-01-01
    相关资源
    最近更新 更多