Comment tester si chaque élément dans une liste de type 'int'?
Dire que j'ai une liste de nombres. Comment pourrais-je faire pour vérifier que chaque élément de la liste est un int?
J'ai cherché partout, mais je n'ai pas été en mesure de trouver quoi que ce soit sur ce.
for i in myList:
result=isinstance(i, int)
if result == False:
break
mais est très moche et unpythonic à mon avis.
Est-il mieux(et plus pythonic) manière de procéder?
source d'informationauteur vurp0
Vous devez vous connecter pour publier un commentaire.
La déclaration suivante devrait fonctionner. Il utilise le
any
builtin et un générateur d'expression:Cela renvoie true si il y a un non-int dans la liste. E. g.:
La
all
builtin peut également accomplir la même tâche, et certains pourraient dire qu'il s'est fait légèrement plus de sens (voir Dragan's réponse)Une approche ne serait pas de test, mais d'insister. Cela signifie que votre programme peut gérer une large gamme d'entrées intelligemment -- il ne sera pas échouer si quelqu'un passe un flotteur à la place.
ou (sur place):
Si quelque chose ne peut pas être converti, il va lever une exception, et vous pouvez ensuite les attraper si vous vous souciez de vous.
Voir les fonctions
Alors appel
....une solution possible de bien à l'aide d'une compréhension de liste ou d'un filtre()
Me suis retrouvé dans une situation similaire, mais légèrement différente de la condition: Si la "entiers" dans votre liste sont représentés comme des chaînes de caractères, et que vous voulez tout simplement pour vérifier si les éléments de la liste peut être représentés par des entiers, que vous pouvez utiliser:
Par exemple:
Cela a été le cas pour moi, après l'aide de la ligne.split() sur une ligne de nombres entiers dans un fichier texte, qui a attribué tous les éléments de type "string".