Chao ... †
Il y a des moments où vous souhaitez combiner des listes imbriquées (imbriquées) en Python en une seule liste, c'est-à-dire aplatir. Des informations sur la façon de traiter de tels cas peuvent être trouvées immédiatement en recherchant sur le Web. Mais n'est-ce pas ennuyeux de le copier et de le coller un par un? Je suis ennuyé. Donc, dans cet article, je vais vous présenter le module flati
qui s'aplatit en Python.
Actuellement, il prend en charge Python 2.7 et Python 3.4 ~ 3.8. Puisqu'il s'agit d'un module Pure-Python, il fonctionnera sur diverses plates-formes telles que Windows / macOS / Ubuntu tant qu'il dispose d'un environnement Python compatible.
Je l'ai nommé «flati» en appliquant le traitement d'aplatissement et Fulvio Frati (un enseignant qui a étudié avec moi). Veuillez prononcer "Flati".
$ pip install flati
or
$ python -m pip install flati
import flati
# flati.flatten()Est un générateur qui renvoie des objets Iterable imbriqués élément par élément.
#Si vous souhaitez combiner les valeurs renvoyées en un seul objet Iterable, listez()Veuillez utiliser etc.
iterable = [(1, 2, 3), (4, (5, 6))]
list(flati.flatten(iterable))
# => [1, 2, 3, 4, 5, 6]
#Je vais l'écrire à nouveau. flati.flatten()Est un générateur.
import types
isinstance(flati.flatten(iterable), types.GeneratorType)
# => True
#Si vous ne souhaitez pas aplatir un objet Iterable particulier,"ignore"Veuillez préciser avec un argument.
iterable = [('abc'), ('def', ('g', 'hi'))]
list(flati.flatten(iterable, ignore=str))
# => ['abc', 'def', 'g', 'hi']
Tips
Si vous souhaitez aplatir le ndarray
de NumPy, utilisez la fonction NumPy. C'est plus rapide.
numpy.ravel ()
. Personnellement, c'est le plus recommandé.ndarray
original.Référence: https://python.atelierkobato.com/flat/
Je vais vous présenter ce que j'ai trouvé en recherchant "aplatir" avec PyPI. Ceux qui aplatissent le type «dict» sont exclus.
, cela peut être un problème si vous ne voulez pas aplatir uniquement
str`.liste
est pris en charge. La sortie s'est arrêtée en décembre 2018. La documentation (https://flattenit.readthedocs.io/en/latest/) est solide.Je suis fatigué alors je vais le laisser ici.
――Si vous l'aimez, veuillez donner une étoile au référentiel GitHub de flati. En un seul clic, ma motivation de développement est en place. ――Les étoiles ne suffisent pas! Si c'est le cas, vous pouvez m'envoyer de l'argent ou des choses en appuyant sur le bouton Sponsor du référentiel GitHub de flati. La motivation pour mon développement augmentera considérablement.
Pour les prochains jours, j'aimerais vous présenter quelques modules que j'ai créés pour le moment mais que je n'ai pas du tout annoncés.
Frissonnez et attendez ... †
Recommended Posts