I tried to use raw_input()
to get a list of numbers, however with the code
numbers = raw_input()
print len(numbers)
the input [1,2,3]
gives a result of 7
, so I guess it interprets 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.
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"
try this
eval(a_string)
evaluates a string as Python code. Obviously this is not particularly safe. You can get safer (more restricted) evaluation by using theliteral_eval
function from theast
module.raw_input()
is called that in Python 2.x because it gets raw, not "interpreted" input.input()
interprets the input, i.e. is equivalent toeval(raw_input())
.In Python 3.x,
input()
does whatraw_input()
used to do, and you must evaluate the contents manually if that's what you want (i.e.eval(input())
).The above code snippets is easy method to get values from the user.
you can pass a string representation of the list to json:
user enters in the list as you would in python:
[2, 34, 5.6, 90]