Подтвердить что ты не робот

Получить список номеров в качестве ввода от пользователя

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

numbers = raw_input()
print len(numbers)

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

4b9b3361

Ответ 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]
>>> 

Ответ 2

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

Python 3:

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

Python 2:

s = raw_input()
numbers = map(int, s.split())

Ответ 3

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

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

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

Ответ 4

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

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

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

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

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

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

Ответ 5

Другим способом может быть использование for-loop для этого. Скажем, вы хотите, чтобы пользователь вводил 10 номеров в список с надписью "memo"

memo=[] 
for i in range (10):
    x=int(input("enter no. \n")) 
    memo.insert(i,x)
    i+=1
print(memo) 

Ответ 6

num = int(input('Size of elements : '))
arr = list()

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

print(arr)

Ответ 7

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

import json

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

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

Ответ 8

Ответ тривиален. попробуйте это.

x=input()

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

print len(x)

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

print x[3]

это дает 'aA'

Ответ 9

a=[]
b=int(input())
for i in range(b):
    c=int(input())
    a.append(c)

Вышеприведенные фрагменты кода - это простой способ получить значения от пользователя.

Ответ 10

Получить список номеров в качестве ввода от пользователя.

Это можно сделать с помощью списка в Python.

L=list(map(int,input(),split()))

Здесь L указывает список, map используется для сопоставления ввода с позицией, int указывает тип данных пользовательского ввода, который имеет целочисленный тип данных, split() используется для разделения числа на основе пробела.

.

enter image description here

Ответ 11

Вы можете использовать эту функцию (только для типа 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]          

Ответ 12

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

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

Ответ 13

В 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'>
>>>

Ответ 14

Я думаю, что это сделает работу:

val = map(int, input().split()) print(list(val))

Ответ 15

Попробуйте следующее:

numbers = raw_input()
numberlist = list(numbers)

Ответ 16

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

Ответ 17

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

Ответ 18

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

numbers = raw_input()
a = numbers.split(" ")

Ответ 19

Вы все равно можете использовать свой код, но вам нужно немного его подстроить. Вы можете использовать код для python 2.9 или меньше:

number = raw_input()
print number

Если вы используете python 3 или выше, вы можете использовать код:

number = input()
print number