web-dev-qa-db-fra.com

Que signifie la syntaxe "x pour x dans"?

Que se passe-t-il réellement lorsque ce code est exécuté:

text = "Word1anotherword23nextone456lastone333"
numbers = [x for x in text if x.isdigit()]
print(numbers)

Je comprends que [] Fait une liste, .isdigit() vérifie Vrai ou Faux si un élément de chaîne (texte) est un nombre. Cependant, je ne suis pas sûr des autres étapes, en particulier: que fait ce "x" devant la boucle for?

Je sais quelle est la sortie (ci-dessous), mais comment cela se fait-il?

Output: ['1', '2', '3', '4', '5', '6', '3', '3', '3']
9
Martin Melichar

Ceci est juste standard Python compréhension de liste. C'est une façon différente d'écrire une boucle plus longue. Vous parcourez tous les caractères de votre chaîne et les mettez dans la liste si le caractère est un chiffre.

Voir this pour plus d'informations sur la compréhension des listes.

7
ninesalt