Voici une petite fonction permettant d'initialiser une liste en saisissant les valeurs à la volée à l'aide de la fonction input.
Certe inutile pour une courte liste [1,2,3,4], mais vraiment très pratique pour une longue liste et contenant surtout des données alpha-numériques (évite de saisir les quotes entourant la chaine de texte)
Compatible Python2 et Python3
>>> def initializeList():
l = []
# Pour la compatibilité Python2 et Python3
_input = input
if hasattr(__builtins__, 'raw_input'):
_input = raw_input
# Boucle infinie pour remplir la liste
while True:
d = _input("--> ").strip()
if d == '':
# On quitte si la valeur est vide
break
else:
# On tente une conversion en int
try:
l.append(int(d))
except ValueError:
# Si erreur, on tente une conversion en float
try:
l.append(float(d))
except ValueError:
# Sinon, on laisse la valeur au format chaine de texte
l.append(d)
# On retourne la liste
return l
>>> myList = initializeList()
--> 1
--> 2
--> 3
--> 4
--> 5
--> 6
--> a
--> z
--> er
--> r
--> t
--> y
--> fg
--> d
-->
>>> print(myList)
[1, 2, 3, 4, 5, 6, 'a', 'z', 'er', 'r', 't', 'y', 'fg', 'd']
>>>
Ca peut toujours servir