[PYTHON] So vergleichen Sie Listen und rufen allgemeine Elemente in einer Liste ab

Manchmal wollte ich zwei Listen mit Zeichenfolgen als Elemente vergleichen und die gemeinsamen Elemente als Liste abrufen. Nun, ich kann es schaffen, aber ich habe mich gefragt, wie ich es selbst machen soll und habe darüber nachgedacht.

Zum Beispiel

Angenommen, Sie haben zwei Listen wie diese, tag_list und src_list, und Sie möchten allgemeine Elemente als Liste abrufen.

tag_list=['igarashi', 'kubo', 'iguchi']
src_list=['taniguchi', 'matsushita', 'koyama', 'asama', 
          'marui', 'igarashi', 'kubo', 'kondo']

tag_list besteht aus drei Elementen. igarashi und kubo befinden sich ebenfalls in src_list, aber da es kein iguchi gibt, ist der erwartete Wert['igarashi', 'kubo'].

1. Drehen Sie jede Liste mit einer for-Anweisung, um Elemente zu extrahieren und zu vergleichen

matched_list = []
for tag in tag_list:
    for src in src_list:
        if tag == src:
            matched_list.append(tag)

Das erste, was mir in den Sinn kam, war natürlich dies. Es ist leicht zu verstehen, aber die Vertiefung ist tief und leicht.

2. Eine Liste ist eine for-Anweisung und die andere ist eine Filterfunktion zum Abrufen und Vergleichen von Elementen.

matched_list = []
for tag in tag_list:
    matched_list+=filter(lambda str: str == tag, src_list)

Ich wollte die Listenmanipulationsfunktionen filter (), map () und redu () verwenden, also habe ich mein Bestes versucht. Ist es intuitiv für moderne Menschen, die an Sprachen mit zahlreichen Funktionen zur Manipulation von Arrays gewöhnt sind?

3. Konvertieren Sie die Liste, um das logische Produkt festzulegen und zu übernehmen. Konvertieren Sie das Ergebnis in eine Liste

src_set = set(src_list)
tag_set = set(tag_list)
matched_list = list(src_set & tag_set)

Als ich googelte, kam plötzlich so etwas heraus. Es ist in gewisser Weise intuitiv. Ist es der Punkt, dass der Aggregattyp keine Reihenfolge hat? Ich habe gelernt, dass es in solchen Fällen verwendet werden kann.


Wie ist es am Ende am besten zu schreiben?

Ist es leicht zu verstehen, lesbar, erfrischend, pythonartig und hat Vor- und Nachteile? Ich dachte. Mehr und mehr! Gibt es eine Möglichkeit, es zu schreiben? Gibt es auch einen Unterschied in der Verarbeitungsgeschwindigkeit? Ich war auch besorgt. Nächstes Mal werde ich große Beispieldaten erstellen und messen.


Beispielquelle

cmp_list.py https://github.com/yamao2253/qiita

Recommended Posts

So vergleichen Sie Listen und rufen allgemeine Elemente in einer Liste ab
[Python] Zusammenfassung zum Abrufen von Listen und Wörterbuchelementen
So löschen Sie einen Taple in einer Liste (Python)
So entfernen Sie doppelte Elemente in der Python 3-Liste
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
[Python] So sortieren Sie Diktate in Listen und Instanzen in Listen
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
So tauschen Sie Elemente in einem Array in Python aus und wie kehren Sie ein Array um.
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
So erstellen Sie einen Datenrahmen und spielen mit Elementen mit Pandas
[Python] So löschen Sie eine Zeile / Spalte in einer Tabelle (Liste der Optionen für die Drop-Methode)
Wie erhalte ich eine Liste ohne Elemente, deren Index i ... ist?
So löschen Sie mehrere angegebene Positionen (Indizes) in einer Python-Liste
So teilen und speichern Sie einen DataFrame
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
Wie bekomme ich Stacktrace in Python?
Verwendung ist und == in Python
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
[Python] So fügen Sie eine beliebige Anzahl von Standardeingaben in die Liste ein
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
So setzen Sie in Python ein Leerzeichen mit halber Breite vor Buchstaben und Zahlen.
So machen Sie den Containernamen in Docker als Subdomain zugänglich
So formatieren Sie eine Liste von Wörterbüchern (oder Instanzen) in Python
So stoppen Sie das Programm bis zu einem bestimmten Datum und einer bestimmten Uhrzeit in Python
[Python] Erstellen einer Wörterbuchtypliste, Hinzufügen / Ändern / Löschen von Elementen und Extrahieren mit einer for-Anweisung
Empfangen und verarbeiten Sie n Objekte in einer Liste
So generieren Sie eine Sequenz in Python und C ++
So erstellen Sie eine JSON-Datei in Python
Umschreiben von Elementen in einer Listenschleife (Python)
So implementieren Sie eine Verlaufsauswahl in Houdini
Holen Sie sich nur Unterklassenelemente in eine Liste
So benachrichtigen Sie Discord-Kanäle in Python
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
So erstellen Sie eine Rest-API in Django
Sortieren Sie Listenelemente in Python in der angegebenen Reihenfolge
Wie schreibe ich ein benanntes Tupeldokument im Jahr 2020?
So zählen Sie Zahlen in einem bestimmten Bereich
So lesen Sie Dateien in verschiedenen Verzeichnissen
Wie man eine öffentliche Funktion in Pytest verspottet
[Python] Manipulation von Elementen in einer Liste (Array) [Sortieren]
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Wie kann man in Go so etwas wie eine Liste von void * (oder Variantentypen) erreichen?
So lesen Sie Seriennummerndateien in einer Schleife, verarbeiten sie und zeichnen sie grafisch auf
[Pandas] So überprüfen Sie Duplikate in einer Tabelle und löschen Duplikate (entspricht dem Löschen von Duplikaten in Excel)
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
So legen Sie das Schema in den Django-Datenbankeinstellungen fest
So rufen Sie den n-ten größten Wert in Python ab
So konvertieren / wiederherstellen Sie einen String mit [] in Python
So definieren Sie Decorator und Decomaker mit einer Funktion
Unterschiede im Verhalten zwischen den Operatoren append () und "+ =" beim Hinzufügen von Daten zu einer Liste in Python
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
So listen Sie Dateien im angegebenen Verzeichnis auf (Suche nach mehreren Bedingungen / Unterverzeichnissen)
[GCF + Python] So laden Sie Excel in GCS hoch und erstellen eine neue Tabelle in BigQuery
[Python] So erweitern Sie Variablen in einer Zeichenfolge
So schreiben Sie einen Listen- / Wörterbuchtyp von Python3
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
Beachten Sie beim Initialisieren einer Liste in Python