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

常见变体写法

  1. 读取 3 个数字
a,b,c = map(int, input().split())
#输入:10 20 30
  1. 存到列表(不知道输入多少个数字时用)
nums = list(map(int, input().split()))
print(nums)

 

 

posted @ 2026-09-21 21:12  emanlee  阅读(22)  评论(0)    收藏  举报