Python map(int, input().split()) 详细解释
map(int, input().split()) 详细讲解
这是 Python 读取一行多个数字输入非常经典的写法, 把它拆成 3 部分理解:input() → split() → map(int, ...)。
完整语句:
a, b = map(int, input().split())
1. 分步拆解
① input()
input()
- 功能:读取键盘一行输入,返回结果永远是字符串 (str) 类型。
- 例:用户输入
2 8,input()得到字符串:"2 8"
⚠重点:不管你输入数字,input 拿到的都是字符串,不能直接做数学计算。
② .split()
"2 8".split()
split()是字符串方法,默认以任意空白(空格、多个空格、tab)切割字符串,返回一个列表。"2 8".split()→['2', '8']- 如果输入是
10 20 30,split 之后得到['10','20','30']
返回列表里面每一个元素依然是字符串,不是数字。
③ map(int, 可迭代对象)
map(int, ['2', '8'])
map(函数, 序列):把序列里面每一个元素,都交给前面的函数处理。- 这里函数是
int,作用:把字符串数字转成整数。 ['2','8']中:int('2')→2,int('8')→8。
Python3 中 map 返回 map 对象,可以直接用变量解包,或者用
list()转列表:
list(map(int, input().split())) #转为列表 [2,8]
④ 解包赋值 a, b = ...
a,b = map(int, input().split())
把 map 处理好的一组整数,依次赋值给变量a和b。
a = 2,b = 8
⚠注意:输入数字的个数必须和左边变量数量一致! 如果左边写
a,b,但是用户只输入 1 个数字,程序直接报错。
完整分步演示
假设输入一行:2 8
#步骤1
s = input()
print(s) #输出字符串 "2 8"
print(type(s)) # <class 'str'>
#步骤2
lst_str = s.split()
print(lst_str) # ['2', '8'] 字符串列表
#步骤3
map_obj = map(int, lst_str)
print(list(map_obj)) # [2,8] 整数列表
#步骤4
a,b = list(map(int, input().split()))
print(a, b) # 2 8
常见变体写法
- 读取 3 个数字
a,b,c = map(int, input().split())
#输入:10 20 30
- 存到列表(不知道输入多少个数字时用)
nums = list(map(int, input().split()))
print(nums)

浙公网安备 33010602011771号