应该如何在一行输入多个数, 并且把这些数存入列表。
更新时间是二零二二年五月十日, 十一时二十六分, 三十五秒, 由小狐狸FM担任作者。
本文主要是讲明了该怎么用一行来输入好多数字, 然后存进列表里去, 这对于大家参考是很有帮助的, 所以希望可以对大伙有所帮衬。要是发现有哪里错了或没考虑周全地地方,那就敬请不要藏着掖着, 多多提宝贵意见吧。
如何一行输入多个数,并存入列表
在这里面, 你要是光用input()函数, 那是只输入一行内容, 并且把这行内容当成字符串存到变量里头。不过要是你想在一行里面输入好几个数字, 那你用int(input())这种方法, 那就实现不了了。
在使用这个版本的时候, 可能会出现错误。
关于相关介绍, 这里说的是把列表中每一个元素都转换成数字的一种方法。
方法一
split()是一个方法, 这个方法的作用是, 把字符串分割成多个字符串, 分隔的标志位是空白符。然后呢, 如果你想要使用逗号作为间隔标志的话, 那么你就需要在里面的括号当中填入逗号, 也就是写成split(‘,’)这个形式。
有一点是必须要注意到的事情, 就是通过input这个函数所获得的来自键盘上的输入的内容, 它的类型是属于字符串类型。
因此, 在列表当中这些类型的数值依然是字符串的形式, 假如你的目的需要进行数学方面的计算操作, 你就需要将它们转换成如整数或者是浮点数之类的相应类型。
我在进行转换的过程里, 发现一个问题, 就是不能直接使用那个 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)
方法二
这句话是建立在方法一的基础之上的, 具体来说这里使用了函数, 其作用是把通过分割操作获得的字符序列进行转换, 从而变成整型数据构成的序列, 接着再引入函数, 把前面得到那个由整数组成的序列转换成列表这一数据结构。
#作者:小狐狸#输入
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()函数接收两个参数, 其中一个是函数对象, 另一个则是序列数据, 该函数会将其中的功能逻辑分别应用到这个序列里面所包含的每一个元素上, 并且会把最终得到的结果整体作为一个全新的列表来返回。
2.split( )
对字符串实施拆分操作。依据给定的分隔符, 把整个字符串进行切割动作。最终输出结果是一个包含多个子串的集合, 这个集合的数据类型被定义为列表, 英文名称是list。
3.map(,input(“以空格分开”).split())
因为输入函数输出的内容是一个由空格隔开的文本字符串, 所以分割函数会把里面各个数值拆开, 并且存到列表里面去, 在列表里面的时候这些数值的类型仍然是字符形式的字符串, 如果要拿这些结果来做一些计算操作的话, 那么必须在映射函数里面依靠转换成整数或者转换成浮点数的处理方式来进行处理, 然后再把这些结果赋值给变量, 要是你不需要转换直接要保留这些本来就是字符串形式的值的话, 那就完全不用去调用那个映射函数了。
示例代码如下
a,b =input('输入a,b空格隔开:').split()#此时a,b为str型
a,b =map(int,input('输入a,b空格隔开:').split())
#此时a,b为int型
这些内容都是我自己的一些经验, 是能够为大家提供参考的, 同时也希望大家能够在脚本之家这个地方多多给予支持。