输入列表 - 双/三位数

时间:2014-10-28 03:02:37

标签: list python-3.x numbers digits

我想知道如何让我的代码检测到两位数或三位数并将它们放入列表中。目前,它会分隔任何两位数,并为每个数字而不是每个数字分配一个列表值。例如,如果用户输入" 5 55 6 45 3",程序将其输入为[" 5"," 5"," 5&#34 ;," 6"," 4"," 5"," 3"]。谢谢。

main_list = list(input("Enter numbers: "))
for vals in main_list:
    if vals == " ":
        main_list.remove(vals)
print("The original numbers are",main_list)

1 个答案:

答案 0 :(得分:0)

您可以对字符串使用.split()方法(直接使用字符串,而不是list(...)):input("Enter numbers: ").split(' ')返回

["5", "55", "6", "45", "3"]

即。它会在每个' '处拆分字符串。如果有一个双重空格,请注意会发生什么:您将在列表中获得空字符串。因此,最好的方法是检查字符串是否为非空:

[x for x in input("Enter numbers: ").split(' ') if x]

另请注意,这仅适用于Python3.x(因为input的返回值是字符串)。 Python 2的相应函数是raw_input()。因此,如果您需要使它兼容,您可以使用

try:
    [x for x in raw_input("Enter numbers: ").split(' ') if x]
except NameError:
    [x for x in input("Enter numbers: ").split(' ') if x]

但不是相反(Python {2}中存在input(),它只是做同样的事情。)