Récupérer un élément inexistant d'une liste
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compteToutes les questions

madem
23 mai 2025
Résolue
1 réponse
Validation d'index dans une liste
Le second exemple avec `liste[index] if len(liste) > index else None` est pas un peu dangereux ? Si jamais l'index est dynamiquement récupéré et qu'on se retrouve avec une valeur négative basse (genre `-25`), on va faire crash le programme avec une erreur ?
En testant si l'index est compris dans la bonne plage de valeur j'ai l'impression que ça fonctionne :
```
print(ma_liste[index]) if -len(ma_liste) <= index < len(ma_liste) else None
```
Bon après c'est pas très beau à lire, peut-être que le `try / except` est au final plus adapté.
00:00:00 :Alors dans cette partie on va voir une erreur similaire à celle qu'on a vueprécédemment quand on voulait récupérer une clé inexistante d'un dictionnairesauf que cette fois ci on va voir comment récupérer un élément d'une liste sansavoir d'erreur. Donc là vous voyez qu'on a une liste avec 10 éléments dedans donc
00:00:16 :range 10 donc des nombres de 0 à 9 donc si j'ai un index ici de 9 et quej'essaie de récupérer cet index ça va fonctionner vous voyez que là jerécupère bien le nombre 9 si par contre je passe à 10 là vous voyez que je meretrouve avec un index error puisque on essaie de récupérer un index qui
00:00:35 :n'existe pas. Donc comment remédier à cela et bien on va tout simplement faireun try except donc ça c'est la première façon de faire ici donc on va faire untry et on va essayer de récupérer l'index si on arrive à le récupérer onva en même temps le printer si on a une erreur donc comme on a eu juste ici en
00:00:52 :haut donc une erreur de type index error et bien on va tout simplement printerici que l'index n'existe pas. Donc je vais supprimer cette ligne ici qui cause
00:01:01 :une erreur et je vais essayer ça à la place donc là j'exécute le script làvous voyez que ça nous dit bien que l'index 10 n'existe pas donc on a bienréussi à éviter l'erreur grâce au bloc try except ici et si on met parexemple un index de 9 et bien là on va bien récupérer le nombre 9 comme
00:01:17 :précédemment. Ce qu'on pourrait faire aussi c'est tout simplement faire unopérateur ternaire donc comme on a vu dans une partie précédente donc c'est àdire qu'on va récupérer l'index de la liste si la longueur de la liste estplus grande que l'index donc c'est à dire que si la longueur de la liste qu'on
00:01:33 :a définie ici par exemple donc là elle va être de 10 et bien si la longueur dela liste est plus grande que l'index donc si 10 est plus grand que 9 et biença va fonctionner par contre si on met 10 ici et bien lalongueur de la liste qui va être de 10 elle ne va pas être plus grande que 10
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.