Получить список чисел в качестве ввода от пользователя - PullRequest
48 голосов
/ 12 января 2011

Я пытался использовать raw_input() для получения списка чисел, однако с кодом

numbers = raw_input()
print len(numbers)

вход [1,2,3] дает результат 7, поэтому я предполагаю, что он интерпретирует вводкак будто это была строка.Есть ли прямой способ сделать из этого список?Возможно, я мог бы использовать re.findall для извлечения целых чисел, но если это возможно, я бы предпочел использовать более Pythonic решение.

Ответы [ 15 ]

0 голосов
/ 09 мая 2017
k = []
i = int(raw_input('enter the number of values in the list '))
l = 0
while l < i:
    p = raw_input('enter the string ')
    k.append(p)
    l= l+1


print "list is ", k
0 голосов
/ 08 марта 2016

Вам просто нужно набрать raw_input().split(), и split () по умолчанию состоит в том, что значения разделяются пробелом.

0 голосов
/ 10 января 2016

попробуйте это,

n=int(raw_input("Enter length of the list"))
l1=[]
for i in range(n):
    a=raw_input()
    if(a.isdigit()):
        l1.insert(i,float(a)) #statement1
    else:
        l1.insert(i,a)        #statement2

Если элемент списка представляет собой просто число, оператор 1 будет выполнен, а если он является строкой, оператор 2 будет выполнен. В конце концов у вас будет список l1, который вам нужен.

0 голосов
/ 30 сентября 2015

Вы можете использовать эту функцию (только с типом int);)

def raw_inputList(yourComment):
     listSTR=raw_input(yourComment)     
     listSTR =listSTR[1:len(listSTR)-1]
     listT = listSTR.split(",")
     listEnd=[]
     for caseListT in listT:
          listEnd.append(int(caseListT))
     return listEnd

Эта функция возвращает ваш список (с типом int)!

Пример:

yourList=raw_inputList("Enter Your List please :")

Если вы введете

"[1,2,3]" 

затем

yourList=[1,2,3]          
0 голосов
/ 01 декабря 2012

Попробуйте это:

numbers = raw_input()
numberlist = list(numbers)
...