Python 将列表作为用户的输入
当从用户处获取列表作为输入时,输入应该包含在方括号内,而不仅仅是键入数字 这是我的代码,用于从用户获取列表的多个输入Python 将列表作为用户的输入,python,list,split,Python,List,Split,当从用户处获取列表作为输入时,输入应该包含在方括号内,而不仅仅是键入数字 这是我的代码,用于从用户获取列表的多个输入 a = list(map(int,input().strip().split(', '))) 默认输入为[1,2,3,4]。 当我运行代码时,我得到一个错误: ValueError: invalid literal for int() with base 10: '[1' 我知道发生这种情况的原因是因为“[1”是一个不能转换为int的元素,它(方括号和1)被视为索引0处列表的
a = list(map(int,input().strip().split(', ')))
默认输入为[1,2,3,4]。
当我运行代码时,我得到一个错误:
ValueError: invalid literal for int() with base 10: '[1'
我知道发生这种情况的原因是因为“[1”是一个不能转换为int的元素,它(方括号和1)被视为索引0处列表的第一个元素。
拥有方括号对我来说是绝对必要的,我如何解决这个错误,或者忽略方括号?有没有忽略方法或类似的方法可以工作?
干杯!您可以在将其转换为int之前将其从字符串中删除:
a = list(map(int,
input()
.strip()
.replace('[', '')
.replace(']', '')
.split(', ')
)
)
或者也可以使用正则表达式获取所有数字:
import re
a = list(map(int, re.findall(r'\d+', input())))
在将其转换为int之前,可以将其从字符串中删除:
a = list(map(int,
input()
.strip()
.replace('[', '')
.replace(']', '')
.split(', ')
)
)
或者也可以使用正则表达式获取所有数字:
import re
a = list(map(int, re.findall(r'\d+', input())))
从输入端剥去支架:
a = [int(n) for n in input().strip('[]').split(',')]
从输入端剥去支架:
a = [int(n) for n in input().strip('[]').split(',')]
通过一种简单的方法,您可以使用strip()删除额外的空格和“[]”
a = list(map(int, input().strip(' []').split(',')))
通过一种简单的方法,您可以使用strip()删除额外的空格和“[]”
a = list(map(int, input().strip(' []').split(',')))