Python多个字符串输入转换为int类型后仍为字符串问题求解
问题根因
你的代码执行顺序错误:
- 首先将分割得到的全为字符串的
split_input列表解包赋值给a、b、c、d四个变量,此时四个变量已经绑定了字符串类型的值 - 后续对
split_input做整型转换并重新赋值的操作,只会修改split_input列表本身的内容,不会反向修改已经完成赋值的四个独立变量
Python中字符串是不可变类型,变量赋值本质是绑定值的引用,修改列表元素只是让列表的索引位指向新的整型对象,不会改变之前已经绑定了旧字符串对象的变量值,这也是你用循环修改列表也达不到效果的原因。
修正方案
调整操作顺序,先做类型转换,再解包赋值:
inputs = input() split_input = inputs.split() # 先转换列表元素为整型,再解包赋值 split_input = list(map(int, split_input)) a, b, c, d = split_input
可以简化为更简洁的写法:
a, b, c, d = map(int, input().split())
如果要用循环实现,也要遵循先转换后赋值的逻辑:
split_input = input().split() int_list = [] for item in split_input: int_list.append(int(item)) a, b, c, d = int_list
内容的提问来源于stack exchange,提问作者jeremslol
相关产品推荐
相关产品推荐

