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

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

numbers = raw_input()
print len(numbers)

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

Ответы на вопрос(14)

x=input()

Предположим, что[1,3,5,'aA','8as'] приведены в качестве входных данных

print len(x)

это дает ответ 5

print x[3]

это дает'aA'

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

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 по мере необходимости.

)

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]          
Решение Вопроса

В Python 3.x используйте это.

a = [int(x) for x in input().split()]
пример
>>> a = [int(x) for x in input().split()]
3 4 5
>>> a
[3, 4, 5]
>>> 
 Dhiraj Barnwal27 февр. 2017 г., 10:07
Я только начал писать код на python, есть ли какое-то объяснение, как вы пришли к вышеприведенному коду или это нужно запомнить?
 greentec28 февр. 2017 г., 06:31
introtopython.org/lists_tuples.html#List-Comprehensions может быть это полезно
 Dukeling20 февр. 2018 г., 22:14
@DhirajBarnwal Если вы хотите знать, что там происходит:input() читать ввод +split() разделить ввод на пробелы +[f(x) for x in iter] перебрать каждый из этих +int превратить каждого в Int. Если вы хотите знать, как это можно сделать: в основном это просто выяснение того, что вы хотите сделать, и какие части вам нужно собрать для достижения этой цели.
 Steven M. Vascellaro02 нояб. 2017 г., 16:10
Может ли это принимать разные типы данных, кроме int? я могу заменитьint(x) с участиемstring(x)
 Vikhyat Agarwal08 янв. 2018 г., 13:40
@StevenVascellaro Да, хотя выражение будет str (x) вместо string (x), так как str - это способ выражения строки в python
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
 Marko Avlijaš09 мая 2017 г., 05:34
Добро пожаловать в StackOverflow. Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, повышает его долгосрочную ценность.
a=[]
b=int(input())
for i in range(b):
    c=int(input())
    a.append(c)

й от пользователя.

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

numbers = raw_input()
numberlist = list(numbers)
 ekhumoro01 дек. 2012 г., 03:57
Ты вообще читал вопрос? Это совершенно неправильно. С необработанным вводом[1,2,3]Ваш код выдаст список из семистрокине тричисел.

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

Вы можете передать строковое представление списка в json:

import json

str_list = raw_input("Enter in a list: ")
my_list = json.loads(str_list)

пользователь входит в список, как в Python:[2, 34, 5.6, 90]

Вы можете использовать.split()

numbers = raw_input().split(",")
print len(numbers)

Это все равно даст вам строки, но это будет список строк.

Если вам нужно сопоставить их с типом, используйте понимание списка:

numbers = [int(n, 10) for n in raw_input().split(",")]
print len(numbers)

Если вы хотите иметь возможность войти вЛюбые Тип Python и сопоставить его автоматическиа также Вы доверяете своим пользователямНЕЯВНО тогда вы можете использоватьeval

вы хотите, чтобы пользователь ввел 10 чисел в список с именем «памятка»

memo=[] 
for i in range (10):
    x=int(input("enter no. \n")) 
    memo.insert(i,x)
    i+=1
print(memo) 
 Underyx25 июл. 2016 г., 15:03
Я не думаю, что это проще, чем принятый ответ.

разделенных пробелами, чем пытаться анализировать синтаксис Python:

Python 3:

s = input()
numbers = list(map(int, s.split()))

Python 2:

s = raw_input()
numbers = map(int, s.split())
 AJ Dhaliwal15 апр. 2016 г., 13:29
После Python 2.7 raw_input () был переименован в input (). Переполнение стекаответ
 frp farhan06 мая 2017 г., 18:42
опубликовать его как новый вопрос, спасибо за поддержку, было страшно, что его нельзя пометить как дубликат !!stackoverflow.com/questions/43822895/...
 frp farhan06 мая 2017 г., 18:25
Что делать, если мой ввод имеет смешанную строку типа данных и целое число, то как я могу разделить их и преобразовать в список. input: 'aaa' 3 45 554 'bbb' 34 'ccc' я добавил содержимое, разделенное пробелом !!
 Sven Marnach06 мая 2017 г., 18:30
@FarhanPatel Это не связанный вопрос, поэтому я предлагаю задать новый вопрос. Начните с циклаs.split() или жеshlex.split(s) если вы хотите разрешить пробелы внутри строк в кавычках.
num = int(input('Size of elements : '))
arr = list()

for i in range(num) :
  ele  = int(input())
  arr.append(ele)

print(arr)

eval(a_string) оценивает строку как код Python. Очевидно, это не особенно безопасно. Вы можете получить более безопасную (более ограниченную) оценку, используяliteral_eval функция отast модуль.

raw_input() это называется в Python 2.x, потому что он получает необработанный, а не «интерпретируемый» ввод.input() интерпретирует ввод, то есть эквивалентноeval(raw_input()).

В Python 3.xinput() делает чтоraw_input() раньше, и вы должны оценивать содержимое вручную, если это то, что вы хотите (т.е.eval(input())).

Ваш ответ на вопрос