gpt4 book ai didi

python - 用于读取输入的 StdIn 黑客排名挑战

转载 作者:行者123 更新时间:2023-12-04 17:44:23 25 4
gpt4 key购买 nike

Hackerrank 挑战中让我最沮丧的一件事是通过 stdin 读取函数输入的部分。

Hackerrank 输入通常有一个 \n 分隔符,这是通过 sys.stdin 提供的。我想知道一种读取输入并将它们拆分为 list 的有效方法。示例如下:

输入:

3 2
1 5 3
3 1
5 7

我想将每一行读入一个单独的列表。以下是我的尝试:

import sys

arr = sys.stdin.readlines()[1].split()
arr = list(map(int, arr))

A = sys.stdin.readlines()[2].split()
A = set(map(int, A))

B = sys.stdin.readlines()[3].split()
B = set(map(int, B))

我收到以下错误:

A = sys.stdin.readlines()[2].split()

IndexError: list index out of range

为什么 [2] 上的 IndexError[1] 有效?有没有更好的方法来使用循环读取此类 stdin 输入?

最佳答案

您收到错误的原因是 readlines 在第一次调用时消耗了您的所有输入。这意味着您第二次调用它时,那里什么也没有。

要制作所有输入的二维列表,您必须使用第一个调用:

data = [line.rstrip().split() for line in sys.stdin.readlines()]

您也可以预先转换为整数:

data = [[int(x) for x in row] for row in data]

现在

arr = data[0]
A = set(data[2])
B = set(data[3])

关于python - 用于读取输入的 StdIn 黑客排名挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52799835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com