2014-10-28 3 views
0

두 자리 또는 세 자리 숫자를 감지하고 목록에 입력하는 코드가 어떻게 생겼는지 궁금합니다. 현재 두 자리를 구분하고 각 숫자 대신 각 숫자에 대한 목록 값을 지정합니다. 예를 들어 사용자가 "5 55 6 45 3"을 입력하면 프로그램은 [ "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

당신은 (list(...) 직접 문자열하지 작업) 문자열의 .split() 방법을 사용할 수 있습니다 : input("Enter numbers: ").split(' ') 반환

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

즉 그것은 각 ' '에서 문자열을 분할

. 이중 공간이 있으면 어떻게되는지주의하십시오. 목록에서 빈 문자열을 얻습니다. 그래서 갈 수있는 가장 좋은 방법은 문자열이 비어 있는지 확인하기 위해 아마도 :

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

주이 만 (input의 반환 값이 문자열이기 때문에) Python3.x에서 작동합니다. 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 존재, 그냥 같은 일을 does't).