本文已参与「新人创作礼」活动,一起开启掘金创作之路。
之前一直在leetcode上刷题,leetcode里直接写代码就可以了,不需要考虑读入数据的问题,所以在牛客网写华为机试题库里写题时发现根本无从下手,所以为了更好的准备秋招还是要多多在不同的平台上练习啊!我在刷题过程中遇到了很多种读入数据的问题,边练边学的过程中总结了一下常见的读入数据方法。下面就是如何读入数据吧,大家一起学习呀!
读入数据是一个整体
例如输入:[3, 1, 4, 5, 17, 2, 12]
因为在后续的过程里这一组数据作为一个整体进行处理,不需要分开考虑,所以不需要通过split分开
#读入方法
x = list(map(int,input().strip('[').strip(']').split(',')))
读入数据要分开使用
例如输入:18 2
因为在后续的过程里,这两个数字是需要分开使用的,可能表示了不同的涵义,为了后续的使用,需要使用split把这两个数字分开。
#读入方法
N,L = map(int,input().split())
读入数据分为三组
例如输入:三行
8
1 2 4 9 3 55 64 25
0
三行数据分三次读入,所以需要input三次,但是由于每次读入的数据类型不一样,所以处理方式不一样,其中[int(i) for i in list.split()]可以把输入的一串字符串类型的数字转化成数字类型的向量。
#读入方法
k = input()
list = input()
p = input()
x = [int(i) for i in list.split()]
不知道要读入多少组
例如读入多组
很多时候可能问题中并没有指出要读入多少组数据,也不知道什么时候停止,所以为了控制输入需要有个框架,当有输入的时候即满足while True时,进行数据的读入和处理,一旦不满足while条件,就停止
#读入方法
while True:
try:
except EOFError:
break