Alors les index même en C++ maintenant on essaye aussi de les éviter au profit des iterateurs...
Mais le passage que tu cite :
Using an additional state variable, such as an index variable (which you would normally use in languages such as C or PHP), is considered non-pythonic.
Est vraiment très spécifique pour essayer de dire de ne pas faire des boucles sur des conteneur en utilisant les indices genre ça :
Car effectivement c'est pas pythonique et assez lent. Les boucle en python sont optimisées pour itérer sur des conteneurs ou des generateurs.
Mais ça ne veut pas dire que faire tout en fonctionnel est plus pythonique, juste qu'il faut iterer sur les élément et pas sur les index. Quand on a spécifiquement besoin de l'index (en plus de la valeur) on utilise enumerate() pour avoir en plus l'index. Mais c'est un peu pareil en C++11, C++14, C++17 ou C++20 car faire des boucles par iterateur évite beaucoup de soucis et peut être aussi rapide que par index. C'est juste un idiom plus récent. d'ailleurs on le voit comme idiom principale des boucles dans les langages récents comme le rust.
Bon par contre quand on a appris en faisant toutes ses boucles par index c'est dur de ce le sortir de la tête.
[^] # Re: Python
Posté par pymaldebaran (site web personnel, Mastodon) . En réponse au journal Découvrir Docker, Python, LLVM et Emscripten. Évalué à 5. Dernière modification le 23 février 2021 à 14:25.
Alors les index même en C++ maintenant on essaye aussi de les éviter au profit des iterateurs...
Mais le passage que tu cite :
Est vraiment très spécifique pour essayer de dire de ne pas faire des boucles sur des conteneur en utilisant les indices genre ça :
Car effectivement c'est pas pythonique et assez lent. Les boucle en python sont optimisées pour itérer sur des conteneurs ou des generateurs.
Mais ça ne veut pas dire que faire tout en fonctionnel est plus pythonique, juste qu'il faut iterer sur les élément et pas sur les index. Quand on a spécifiquement besoin de l'index (en plus de la valeur) on utilise
enumerate()pour avoir en plus l'index. Mais c'est un peu pareil en C++11, C++14, C++17 ou C++20 car faire des boucles par iterateur évite beaucoup de soucis et peut être aussi rapide que par index. C'est juste un idiom plus récent. d'ailleurs on le voit comme idiom principale des boucles dans les langages récents comme le rust.Bon par contre quand on a appris en faisant toutes ses boucles par index c'est dur de ce le sortir de la tête.