Vérifier si l’entrée est une liste en Python #
Utiliser le isinstance()
pour vérifier si une entrée est une liste, par ex.
if isinstance(my_list, list):
. Le site isinstance()
retournera True
si l’objet transmis stocke une liste et False
sinon.
import ast
my_list = ['a', 'b', 'c']
if isinstance(my_list, list):
print('The variable stores a list')
print(type(my_list))
try:
input_list = ast.literal_eval(
input('Enter a valid Python list, e.g. tasks=["walk the dog"]: ')
)
except ValueError:
print('The provided value is not a list')
print(input_list)
input_list = input('Enter multiple, space-separated values: ').split()
print(input_list)
Le premier exemple utilise le isinstance()
pour vérifier si la valeur fournie
fournie est une liste.
my_list = ['a', 'b', 'c']
if isinstance(my_list, list):
print('The variable stores a list')
print(type(my_list))
La fonction isinstance
renvoie True
si l’objet transmis est une instance ou une sous-classe de la classe
la classe transmise.
Vous pouvez utiliser le type
pour obtenir le type d’un objet.
Si vous devez vérifier si une entrée utilisateur est une liste, utilisez la classe ast.literal_eval()
méthode.
import ast
try:
input_list = ast.literal_eval(
input('Enter a valid Python list, e.g. ["walk the dog"]: ')
)
except ValueError:
print('The provided value is not a list')
print(input_list)
Le site
ast.literal_eval
nous permet d’évaluer en toute sécurité une chaîne de caractères qui contient un littéral Python.
La chaîne peut être constituée de chaînes de caractères, d’octets, de nombres, de tuples, de listes, de dicts, d’ensembles, de booléens et de None.
Cela suppose que l’entrée attendue est une liste Python valide, par ex. [1, 2, 3]
.
Si vous devez répartir plusieurs valeurs issues de la saisie de l’utilisateur dans une liste, utilisez la fonction
str.split()
méthode.
input_list = input('Enter multiple, space-separated values: ').split()
print(input_list)
L’exemple suppose que vous vous attendez à recevoir de l’utilisateur plusieurs valeurs séparées par des espaces, par exemple
l’utilisateur, par exemple hello world
ou walk the dog
.
La méthode str.split()
divise la chaîne en une liste de sous-chaînes en utilisant un délimiteur.
Lorsque la méthode str.split()
est appelée sans argument, elle considère les caractères d’espacement consécutifs comme un seul séparateur.
Vous pouvez utiliser la même approche si vous avez besoin de prendre des valeurs multiples
de l’entrée de l’utilisateur et les diviser en une liste.
input_list = input('Enter multiple, comma-separated values: ').split(',')
print(input_list)
Le site str.split()
prend les 2 paramètres suivants :
Nom | Description |
---|---|
séparateur | Divise la chaîne en sous-chaînes à chaque occurrence du séparateur. |
maxsplit | Au plus maxsplit fractionnements sont effectués (facultatif) |
Nous avons utilisé une virgule pour le separator
donc l’utilisateur est censé fournir
plusieurs valeurs séparées par des virgules, par ex. apple,banana,melon
.