Python pour les puriste
Bonjour
Les puristes en Python pourraient-ils m'expliquer comment fonctionne la troisième ligne, particulièrement au niveau de la variable "string" (surtout le premier).
Je ne connais pas beaucoup d'autres codes autres (genre C, C++), mais je trouve que cette façon de programmer sur 1 seule ligne (dont les codeurs Python sont très friands) nuit à la compréhension (est-elle facilement transposable à d'autres codes ?).
Merci
Les puristes en Python pourraient-ils m'expliquer comment fonctionne la troisième ligne, particulièrement au niveau de la variable "string" (surtout le premier).
Je ne connais pas beaucoup d'autres codes autres (genre C, C++), mais je trouve que cette façon de programmer sur 1 seule ligne (dont les codeurs Python sont très friands) nuit à la compréhension (est-elle facilement transposable à d'autres codes ?).
Merci
ListOfStrings = ["one", "three", "wow", "now", "wonda"] PartialSubString = "wo" strings_with_substring = [string for string in ListOfStrings if PartialSubString in string]
Réponses
-
ListOfStrings = ["one", "three", "wow", "now", "wonda"] PartialSubString = "wo" lst = [] for string in ListOfStrings: if PartialSubString in string: lst.append(string) print(lst) # ['wow', 'wonda']
-
je comprends tout à fait ce que le code fait (et son équivalent qui est proposé par Wilfrid), mais je ne comprends pas à quoi sert le premier "string" ; après je peux bêtement appliquer en supposant que c'est le nom de l'itérateur (est-ce le cas ?)
-
Bonjour,
La première string est la même que les deux autres : strings_with_substring est la liste des string telles que string se trouve dans ListOfStrings et PartialSubString est une sous-chaîne de string.
Dans le même genre :lst = [i for i in range(50,101) if i%3 == 0]
lst est la liste des nombres entiers i tels que i soit compris entre 50 et 100 et que le reste dans la division euclidienne de i par 3 soit 0. -
Essaie ça pour voir :
strings_with_substring = [string*2 for string in ListOfStrings if PartialSubString in string]
C’est comme en maths : c’est ce que va contenir strings_with_substring, à droite tu as les conditions sur ces trucs : ça doit être dans ListOfStrings et contenir PartialSubString.Algebraic symbols are used when you do not know what you are talking about.
-- Schnoebelen, Philippe -
le premier "i" est bien juste la déclaration de l'itérateur ; pour le reste j'ai bien compris
Merci -
paul18 a écrit:le premier "i" est bien juste la déclaration de l'itérateur ; pour le reste j'ai bien compris
Non, c’est le deuxième qui est la déclaration de l’itérateur.
Tu peux très bien écrire ça :sum(1 for string in ListOfStrings if PartialSubString in string])
Ça va compter le nombre de chaînes de ListOfStrings qui contiennent PartialSubString.Algebraic symbols are used when you do not know what you are talking about.
-- Schnoebelen, Philippe
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.1K Toutes les catégories
- 8 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 53 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 62 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 312 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 772 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres