1. 单行输入:
n, m = map(int, sys.stdin.readline().strip().split())
- 对该行中所有元素取整型后赋给等式左边若干参数
2. 多行输入: 先获取第一行,再把剩余行合在一个列表中:
(适用于第一行告诉接下来有几行之类或者可以根据第一行得知接下来会有几行输入的题目:
如【一共n个人,每个人有若干苹果,询问m次,输出拥有每次询问苹果数目的人数】
输入:
3 2 (3个人,2次询问)
1 5 6 (3个人苹果数目)
1 (第一次寻问)
3 (第二次询问)
输出:
1
0
a,b,c=[int(i) for i in input().split()]
list=[]
for i in range(hangshu):
list.append([int(i) for i in input().split()])
print(list)
a,b,c=[int(i) for i in input().split()]
list=[]
for i in range(hangshu):
list.extend([int(i) for i in input().split()])
print(list)
- 第一行使用
input().split()
获取输入,对应于a,b,c等多个参数 - 建立空列表
- 使用以上abc参数设置行数读取次数hangshu
- 若使用
.append
:会把每一行输入作为一个列表,再作为原列表的元素;
- 若使用
.extend
:会把后续行输入扩充至原列表;
3. 多行输入:把所有行合在一个列表中:
同以上例为例:
import sys
list = []
list_new = []
for line in sys.stdin:
list_new = line.split()
list.append(list_new)
print(list)
输出:
import sys
list = []
list_new = []
for line in sys.stdin:
list_new = line.split()
list.extend(list_new)
print(list)
输出:
4. 多行输入:行数固定且第一行给出,各行独立获取:
import sys
lines = sys.stdin.readlines()
n = int(lines[0])
x1 = list(map(int, lines[1].split()))
x2 = list(map(int, lines[2].split()))
x3 = list(map(int, lines[3].split()))
print(n,x1,x2,x3)
输入:
3
1 5 6
1
8
输出:
- 第一行读取为int型
- 其余行读取为list类型
5. 常用字符串、列表操作
字符串:
.strip() 去除首位空格
.split() 分割
.strip().strip(‘-a’)去除首位空格和字符‘-a’
.replace(‘a’,’b’) 替换字符
S[:3]、S[5:] 、S[5:7](前3、第5之后、5到7)拼接字符串,去除某个字符
.index(str,beg,end) 返回开始索引或异常
.find(str,beg,end) 返回开始索引或-1
列表:
.remove(具体内容)
.pop(索引号)
del a[索引号]
6. 赛码网输入
nums = int(input())
points = []
for i in range(0, nums):
read_list = list(map(int, input().split()))
# read_list = [int(i) for i in input().split()]
points.append((read_list[0], read_list[1]))
与牛客网类似,不赘述。