I tried to use
input (Py3) /
raw_input() (Py2) to get a list of numbers, however with the code
numbers = input() print(len(numbers))
1 2 3 gives a result of
5 respectively – it seems to interpret the input as if it were a string. Is there any direct way to make a list out of it? Maybe I could use
re.findall to extract the integers, but if possible, I would prefer to use a more Pythonic solution.
In Python 3.x, use this.
a = [int(x) for x in input().split()]
int(x) for x in input().split()] 3 4 5 a [3, 4, 5]a = [
It is much easier to parse a list of numbers separated by spaces rather than trying to parse Python syntax:
s = input() numbers = list(map(int, s.split()))
s = raw_input() numbers = map(int, s.split())
eval(a_string) evaluates a string as Python code. Obviously this is not particularly safe. You can get safer (more restricted) evaluation by using the
literal_eval function from the
raw_input() is called that in Python 2.x because it gets raw, not “interpreted” input.
input() interprets the input, i.e. is equivalent to
In Python 3.x,
input() does what
raw_input() used to do, and you must evaluate the contents manually if that’s what you want (i.e.
You can use
numbers = raw_input().split(",") print len(numbers)
This will still give you strings, but it will be a list of strings.
If you need to map them to a type, use list comprehension:
numbers = [int(n, 10) for n in raw_input().split(",")] print len(numbers)
If you want to be able to enter in any Python type and have it mapped automatically and you trust your users IMPLICITLY then you can use
Another way could be to use the for-loop for this one.
Let’s say you want user to input 10 numbers into a list named “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)
you can pass a string representation of the list to json:
import json str_list = raw_input("Enter in a list: ") my_list = json.loads(str_list)
user enters in the list as you would in python:
[2, 34, 5.6, 90]
Answer is trivial. try this.
[1,3,5,'aA','8as'] are given as the inputs
this gives an answer of 5
a= b=int(input()) for i in range(b): c=int(input()) a.append(c)
The above code snippets is easy method to get values from the user.
Get a list of number as input from the user.
This can be done by using list in python.
Here L indicates list, map is used to map input with the position, int specifies the datatype of the user input which is in integer datatype, and split() is used to split the number based on space.
a = [int(x) for x in input()] a
try this one ,
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
If the element of the list is just a number the statement 1 will get executed and if it is a string then statement 2 will be executed. In the end you will have an list l1 as you needed.