Python, let user define list variable


Trying to enable a user to input a mixed list in the correct format, ie with square brackets and commas already separating values.

Using the input() function saves the entire input as a string.
Using list() around this, just makes every character of the string a separate part of the list.

I see for loops can be used and so can split function, but that won’t work with the kind of list I’m trying to input. I need the user to be able to define the list themselves. Is this even possible?

Essentially, user should be able to input e.g.
and then my script runs the function using their defined list.

Am I just missing something or is there not a way to do this?

Asked By: poseidon



IIUC, you’re looking for ast.literal_eval :

from ast import literal_eval
pre_L = input("Enter a list, please: ")
L = literal_eval(pre_L)

Output :

print(L, type(L))
Enter a list, please:  ["d",3,18,"{ds}"]
['d', 3, 18, '{ds}'] <class 'list'>
Answered By: Timeless
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.