如何一行输入多个数,并存入列表
在python里,如果你仅使用input()的话是输入一行的内容并将该行的内容以字符串的形式存到变量中,但如果你想要在一行输入多个数字的话使用int(input())就没法实现。
注:使用python2版本时可能会报错
相关介绍:Python中列表元素转为数字的方法
方法一
split()是一个方法,将字符串以空白符为标志分割成多个字符串。如果你想要以逗号为间隔标志时,就在里面填逗号,即split(‘,’)
需要注意的是,使用input()获得的键盘输入值为字符串类型
所以列表中的类型仍为字符串,如果你需要运算的话就需要转成int、float等类型。
在转换的时候我发现不能直接使用for i in lis来转换,而是需要使用索引/下标来变更。
#作者:小狐狸
#输入
lis = list(input().split())
#显示类型
for i in lis:
print(type(i))
print()
print(lis)
print()
#列表元素转换为int类型
for i in range(len(lis)):
lis[i] = int(lis[i])
#显示类型
for i in lis:
print(type(i))
print()
print(lis)
方法二
这个是以方法一为基础,使用了map()函数,将分割出来的字符序列转换成整型序列,然后再使用list()函数将这个整型序列转换成列表。
#作者:小狐狸
#输入
lis = list(map(int,input().split()))
#显示类型
for i in lis:
print(type(i))
print()
print(lis)
print()
用input()同时输入多个数
用map( ),split( )以及input( )可以实现用input( )同时输入多个数。
1.map( )
map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
2.split( )
拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
3.map(function,input(“以空格分开”).split())
由于input( )输出的是用空格分开的字符串,split( )会分割开各个值并放到列表中,此时在列表中的值是字符串,如果要用于运算必须在map( )中利用int( )或者float( )等处理,再赋值。如果需要赋值的值都是字符串的话就没必要用map函数了。
示例代码如下
a,b =input('输入a,b空格隔开:').split()
#此时a,b为str型
a,b =map(int,input('输入a,b空格隔开:').split())
#此时a,b为int型
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。