Ответ 1
В 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]
>>>
Я попытался использовать raw_input()
для получения списка чисел, однако с кодом
numbers = raw_input()
print len(numbers)
вход [1,2,3]
дает результат 7
, поэтому я предполагаю, что он интерпретирует ввод так, как если бы он был строкой. Есть ли какой-либо прямой способ сделать список из него? Возможно, я мог бы использовать re.findall
для извлечения целых чисел, но, если возможно, я предпочел бы использовать более Pythonic-решение.
В 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]
>>>
Гораздо проще проанализировать список чисел, разделенных пробелами, чем пытаться анализировать синтаксис Python:
Python 3:
s = input()
numbers = list(map(int, s.split()))
Python 2:
s = raw_input()
numbers = map(int, s.split())
eval(a_string)
оценивает строку как код Python. Очевидно, это не особенно безопасно. Вы можете получить более безопасную (более ограниченную) оценку с помощью функции literal_eval
из модуля ast
.
raw_input()
называется в Python 2.x, потому что он получает сырой, а не "интерпретируемый" вход. input()
интерпретирует вход, т.е. эквивалентен eval(raw_input())
.
В Python 3.x, input()
выполняет то, что делал raw_input()
, и вы должны оценивать содержимое вручную, если это то, что вы хотите (т.е. eval(input())
).
Вы можете использовать .split()
numbers = raw_input().split(",")
print len(numbers)
Это все равно даст вам строки, но это будет список строк.
Если вам нужно сопоставить их с типом, используйте понимание списка:
numbers = [int(n, 10) for n in raw_input().split(",")]
print len(numbers)
Если вы хотите иметь возможность входить в любой тип Python и автоматически отображать его, и вы доверяете своим пользователям НЕПРАВИЛЬНО, тогда вы можете использовать eval
Другим способом может быть использование for-loop для этого. Скажем, вы хотите, чтобы пользователь вводил 10 номеров в список с надписью "memo"
memo=[]
for i in range (10):
x=int(input("enter no. \n"))
memo.insert(i,x)
i+=1
print(memo)
num = int(input('Size of elements : '))
arr = list()
for i in range(num) :
ele = int(input())
arr.append(ele)
print(arr)
вы можете передать строковое представление списка в json:
import json
str_list = raw_input("Enter in a list: ")
my_list = json.loads(str_list)
пользователь входит в список, как в python: [2, 34, 5.6, 90]
Ответ тривиален. попробуйте это.
x=input()
Предположим, что [1,3,5,'aA','8as']
заданы как входы
print len(x)
это дает ответ 5
print x[3]
это дает 'aA'
a=[]
b=int(input())
for i in range(b):
c=int(input())
a.append(c)
Вышеприведенные фрагменты кода - это простой способ получить значения от пользователя.
Получить список номеров в качестве ввода от пользователя.
Это можно сделать с помощью списка в Python.
L=list(map(int,input(),split()))
Здесь L указывает список, map используется для сопоставления ввода с позицией, int указывает тип данных пользовательского ввода, который имеет целочисленный тип данных, split() используется для разделения числа на основе пробела.
.
Вы можете использовать эту функцию (только для типа 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]
попробуйте этот,
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 по мере необходимости.
В Python 3:
input_list = [int(x.strip()) for x in input("enter list:").strip()[1:-1].split(",")]
Он попросит "войти в список", поэтому просто введите список, как [2,4,5]
(common_py3) PS E:\virtual_env_all\common_py3\Scripts> python
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> input_list = [int(x.strip()) for x in input("enter list:").strip()[1:-1].split(",")]
enter list:[2,4,5]
>>> input_list
[2, 4, 5]
>>> type(input_list)
<class 'list'>
>>>
Я думаю, что это сделает работу:
val = map(int, input().split()) print(list(val))
Попробуйте следующее:
numbers = raw_input()
numberlist = list(numbers)
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
Вам просто нужно ввести raw_input().split()
, а split split() - это то, что значения разделяются пробелом.
попробуйте это
numbers = raw_input()
a = numbers.split(" ")
Вы все равно можете использовать свой код, но вам нужно немного его подстроить. Вы можете использовать код для python 2.9 или меньше:
number = raw_input()
print number
Если вы используете python 3 или выше, вы можете использовать код:
number = input()
print number