2014-10-28 47 views
0

我想知道如何让我的代码检测两位数或三位数并将它们放入列表中。目前它分隔任何两位数字,并为每个数字而不是每个数字分配一个列表值。例如,如果用户输入“5 55 6 45 3”,程序将以[“5”,“5”,“5”,“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) 

回答

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] 

而不是周围的其他方式(input()存在于Python2,它只是简化版,做同样的事情)。