【发布时间】:2021-12-08 15:03:18
【问题描述】:
如何获取用户输入的数字并将其拆分并分别使用每个数字
例如 如果用户输入'''4568''' 代码应将 4568 拆分为 4,5,6,8
【问题讨论】:
-
请展示您到目前为止所尝试的内容..
如何获取用户输入的数字并将其拆分并分别使用每个数字
例如 如果用户输入'''4568''' 代码应将 4568 拆分为 4,5,6,8
【问题讨论】:
对用户输入使用列表推导。
values = [int(i) for i in input()]
请注意,此代码不处理用户在输入中输入非数字字符的情况。为了处理这种情况,你更愿意写:
values = [int(i) for i in input() if i.isdigit()]
【讨论】:
您可以将map 转换为int,并将map 转换为list。
digits = list(map(int, input()))
如果您想确保只接受数字,请将 filter 添加到 input
digits = list(map(int, filter(lambda c: c.isdigit(), input())))
【讨论】:
将其转换为字符串,迭代为字符串并将每个字符作为整数获取。
# Input from the user
inp = input()
digits=[]
for c in str(inp):
try:
digit=int(c)
# Populate the list with the last digit obtained
digits.append(digit)
except:
# I'm assuming you don't need to worry about any other non integer character
pass
或者在一行中,但请注意,如果输入中存在任何非整数字符,则映射失败:
inp = 1234
digits = list(map(int, list(str(inp)))
list(str(inp)) 将字符串转换后的输入拆分为其字符列表,map 将整数转换应用于后一个列表的每个元素,最终转换为列表返回您想要的数组
编辑:我在写评论的同时写代码。我现在已经将直接int 建议集成到地图功能
EDIT2:一个挑剔的编辑,允许实际的用户输入而不是测试变量。这根本不会改变实质内容。
【讨论】:
list(map(int, list('12345'))) 。