python - 在Python中将输入的整数字符串转换为列表,然后转换为整数?

标签 python

我希望用户输入一个整数(6 位长,因此 123456 而不仅仅是 1),然后将该输入转换为列表,[1,2,3,4,5,6].

我尝试过这个:

user_input = list(input("Please enter an 8 digit number")
numbers = [int(i) for i in user_input]

我希望能够使用数字列表执行数学运算,但我不断收到错误“int 不可迭代”。坦率地说,我不完全确定我在做什么,或者确定“numbers = [...]”是否必要,或者它是否应该只是numbers = user_input。尝试 numbers = [i for i in user_input] 会得到相同的错误。

此外,我意识到我可以运行一个循环来从用户那里获取每个数字,或者要求他们在每个数字之间使用逗号以便使用 .split(","),但我宁愿不这样做,因为这对用户来说似乎很困惑。

编辑:我一直在版本之间切换,很抱歉造成任何困惑。这是用 2.7 编写的,尽管我打算使用 Python 3。

最佳答案

在 Python 2.7 中,input() 返回一个整数。要将输入读取为字符串,请使用函数raw_input()。或者,您可以切换到 Python 3,其中 input() 始终返回字符串。

此外,如果用户提供的数字超过 1 位,您的解决方案也不是很简洁。例如,字符串“123”可以解释为 [1, 2, 3]、[12, 3] 等。

一个巧妙的解决方案是要求用户提供用空格分隔的输入,如下 x_1, x_2, ... x_n

那么 Python 3.0 中的代码将如下所示

lst = [int(x) for x in input().split()]

对于 Python 2.7

lst = [int(x) for x in raw_input().split()]

关于python - 在Python中将输入的整数字符串转换为列表,然后转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39945615/

相关文章:

python - 使用 lambda getter 和 setter 创建属性

python - "GUI becomes unresponsive after clicking the button"

python - Pandas 重命名多个 NaN 列名称

python - 正确地从嵌套字典中获取数据,必须有更好的方法

Python - pandas - 皮秒精度的时间序列数据

python - 选择 Pandas 中某个值周围的行

python - 如何从两个词典创建列表?

python - 如何读取不同分辨率的图像以在 TensorFlow 中创建数据集

python - python 对象中的隐式项目分配

python - 在 Python 中合并两个 JSON 字典?