Arrêtons de copier. Présentation de flati, un module qui s'aplatit avec Python

Chao ... †

introduction

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.

Origine du nom

Je l'ai nommé «flati» en appliquant le traitement d'aplatissement et Fulvio Frati (un enseignant qui a étudié avec moi). Veuillez prononcer "Flati".

Installation

$ pip install flati

or

$ python -m pip install flati

Comment utiliser


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.

Référence: https://python.atelierkobato.com/flat/

Cas précédent

Je vais vous présenter ce que j'ai trouvé en recherchant "aplatir" avec PyPI. Ceux qui aplatissent le type «dict» sont exclus.

Je suis fatigué alors je vais le laisser ici.

Avantages de l'utilisation de flati

Une grosse demande

――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.

à la fin

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

Arrêtons de copier. Présentation de flati, un module qui s'aplatit avec Python
Faisons une interface graphique avec python.
Faisons un graphe avec python! !!
Sentons-nous comme un chercheur de matériaux avec python [Introduction à pymatgen]
Faisons un jeu de shiritori avec Python
[Introduction à Python] Utilisons foreach avec Python
Faisons la voix lentement avec Python
Créez un framework Web avec Python! (1)
Faisons un bot Twitter avec Python!
Créez un framework Web avec Python! (2)
Erreur lors de l'installation d'un module avec Python pip
Essayez de dessiner une courbe de vie avec python
Je veux faire un jeu avec Python
Essayez de créer un code de "décryptage" en Python
Comment ajouter un chemin de recherche de module Python
Décidez d'une mission de laboratoire avec Python (fiction)
Étapes pour créer un bot Twitter avec Python
Pour ajouter un module à python que vous mettez dans Julialang
Remplaçons UWSC par Python (5) Faisons un robot
Essayez de créer un groupe de dièdre avec Python
Faisons un module pour Python en utilisant SWIG
Je veux écrire dans un fichier avec Python
Zubu amateur veut démarrer Python
Si vous voulez créer un bot discord avec python, utilisons un framework
Comment convertir / restaurer une chaîne avec [] en python
Mémo connecté à HiveServer2 d'EMR avec python
Essayez de créer un module Python en langage C
Faisons un outil de veille de commande avec python
Python Ver. Présentation de WebPay avec un peu de code
Je veux écrire en Python! (2) Écrivons un test
[Jouons avec Python] Créer un livre de comptes de ménage
Essayez de créer un jeu simple avec Python 3 et iPhone
J'ai créé un module Python pour traduire les commentaires
Je veux travailler avec un robot en python.
De l'achat d'un ordinateur à l'exécution d'un programme sur python
[Python] Un mémo pour écrire du CSV verticalement avec Pandas
Introduction de Python 2.7 à CentOS 6.6
Une note de malentendu lors de la tentative de chargement de l'intégralité du module self-made avec Python3
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
[Super facile] Faisons un LINE BOT avec Python.
Je veux faire fonctionner un ordinateur quantique avec Python
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
[Python] Road to the Serpent (5) Jouez avec Matplotlib
Créons un client de socket Web avec Python. (Authentification par jeton d'accès)
Comment installer NPI + envoyer un message à la ligne avec python
Comment convertir un tableau en dictionnaire avec Python [Application]
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
J'ai créé un package pour filtrer les séries chronologiques avec python
J'ai écrit rapidement un programme pour étudier la DI avec Python ①
Une collection de techniques professionnelles compétitives à résoudre avec Python
Créons un script qui s'enregistre avec Ideone.com en Python.
Probablement le moyen le plus simple de créer un pdf avec Python 3
Expérimentez pour créer un PDF indépendant pour Kindle avec Python
Créons un diagramme PRML avec Python, Numpy et matplotlib.
[python] Remarques lors de la tentative d'utilisation de numpy avec Cython