如何跳过一行(原始)输入,Python 3

e37o9pze  于 2023-02-06  发布在  Python
关注(0)|答案(2)|浏览(119)

我正在完成以下HackerRank challenge。我收到以下输入:

4
2 4 5 9
4
2 4 11 12

假设我只需要第2行和第4行的输入(假设所有的输入都是这样的),目前我正在实现一个陈腐的解决方案:

seta = set()
setb = set()
delete = input()
seta = input().split()
delete = input()
setb = input().split()

我在后面的程序中没有使用delete,有没有更好、更精确、更简洁的方法?

2guxujil

2guxujil1#

sys.stdin对象上循环;它是一个常规文件,支持迭代,可以使用itertools.islice()对象跳过每隔一行:

import sys
from itertools import islice

second_lines = islice(sys.stdin, None, None, 2)
seta = set(map(int, next(second_lines).split()))
setb = set(map(int, next(second_lines).split()))
xu3bshqb

xu3bshqb2#

下面是我经常发现自己在HackerRank挑战中使用的一个模式:

def read_set() -> set[str]:
    """Read a set of space-delimited strings from STDIN."""
    input()
    return {*input().split()}

print(len(read_set() & read_set()))

相关问题