Python-Listeneinschlussnotation und Generator

Python-Listeneinschlussnotation und Generator

Beide generieren Listen, werden aber unterschiedlich verwendet, daher werde ich sie leicht zusammenfassen.

Listeneinschlussnotation

Eine der gebräuchlichsten Methoden, um kartenähnliche Methoden zu schreiben. Python hat auch eine Kartenmethode, aber das Einfügen von Listen ist schneller. Verwenden wir diese Methode.

Listeneinschlussnotation und Karte

Listeneinschlussnotation

names = ['Alice', 'Bob', 'Carl', 'Dave']

[name[0] for name in names] # => ['A', 'B', 'C', 'D']

Kartenmethode

names = ['Alice', 'Bob', 'Carl', 'Dave']

map(lambda name: name[0], names) # => ['A', 'B', 'C', 'D']

wenn Listeneinschlussnotation

Es kann verwendet werden, wenn Sie eine neue Liste von Elementen erstellen möchten, die die Bedingungen aus der Liste erfüllen. Es ist möglich, mehrere Bedingungen zu schreiben, indem Sie fortfahren, wenn, und natürlich können Sie auch mit und schreiben.

names = ['Alice', 'Bob', 'Carl', 'Dave']

[name for name in names if len(name) == 4] # => ['Carl', 'Dave']

[name for name in names if not len(name) == 4] # => ['Alice', 'Bob']

[name for name in words if not len(name) == 4 if len(name) < 5] # => ['Bob']

[name for name in words if not len(name) == 4 and len(name) < 5] # => ['Bob']

Mehrere Variablen

Mit zip können Sie aus mehreren Listen gleichzeitig eine neue Liste erstellen.

namesA = ['Alice', 'Bob', 'Carl', 'Dave']
namesB = ['Peter', 'Micheal', 'John', 'Harry']

[" ".join([x, y]) for x, y in zip(namesA, namesB)]
# => ['Alice Peter', 'Bob Micheal', 'Carl John', 'Dave Harry']


Mehrere Schleifen können durch Überlappen von ausgedrückt werden.

namesA = ['Alice', 'Bob', 'Carl', 'Dave']
namesB = ['Peter', 'Micheal', 'John', 'Harry']

[" ".join([x, y]) for x in namesA for y in namesB]
# => ['Alice Peter',
#     'Alice Micheal',
#     'Alice John',
#     'Bob Peter',
#     'Bob Micheal',
#     'Bob John',
#     'Carl Peter',
#     'Carl Micheal',
#     'Carl John',
#     'Dave Peter',
#     'Dave Micheal',
#     'Dave John']

Generator

Der Generator kann Elemente aus den definierten Ausdrücken generieren. Sie können den Wert mit next vom Generator abrufen.

g = (x ** 2 for x in range(5))

next(g) # => 0
next(g) # => 1
next(g) # => 4
next(g) # => 16
next(g) # StopIteration

Mit einem Generator können Sie die Generierung von Werten beenden, wenn die Bedingungen erfüllt sind. Es gibt jedoch auch andere Verwendungszwecke.


Bonus itertools

Es gibt ein Python-Modul namens itertools, das Methoden zum Generieren von Iteratoren implementiert hat.

Zum Beispiel, wenn Sie Kombinationen aufzählen möchten

import itertools
itertools.combinations('ABCD', 2) # => (A,B) (A,C) (A,D) (B,C) (B,D) (C,D)

Beachten Sie, dass dadurch nur ein Iterator erstellt wird, keine Liste.


Hier können Sie eine so kleine Notation lernen, während Sie Probleme lösen. Udacity Design of computer programming

Blog macht (oder versucht) maschinelles Lernen mit Python Aufwand 1mm Blog

Recommended Posts

Python-Listeneinschlussnotation und Generator
Python Iterator und Generator
Funktionen höherer Ordnung und Einschlussnotation in Python
[Python] -Liste
Python-Tapple-Einschlüsse und Generatorausdrücke
Unterschied zwischen list () und [] in Python
Python-Grundlagen: Liste
Inklusive Notation von Python (über Liste und Generatorausdruck) [zusätzlich]
Python-Datenstruktur und interne Implementierung ~ Liste ~
Unterschied zwischen Anhängen und + = in der Python-Liste
Liste und Summe
Liste und Numpy
Python> Verständnis / Inklusive Notation> Listenverständnis
[Python Iroha] Unterschied zwischen Liste und Tupel
Python-Listenmanipulation
Python-Listeneinschlussnotation, die leicht zu vergessen ist
Liste des zu verschiebenden und zu merkenden Python-Codes
[Python] Ein grobes Verständnis von Iterablen, Iteratoren und Generatoren
Sortierte Liste in Python
Python-Übung 2 - List Inclusion Notation
Liste der Python-Module
Python> Liste> verlängern () oder + =
Python- und Numpy-Tipps
[Python] Pip und Wheel
Geschwindigkeit der Listeneinschlussnotation in Python
Filterliste in Python
Python-Pakete und -Module
Vue-Cli- und Python-Integration
Python unittest assertXXX Liste
Ruby, Python und Map
Python3-Memo vom Typ Liste / Wörterbuch
[Memo] Python 3-Listensortierung
Liste der Python-APIs für OpenCV3
Python-Fehlerliste (Japanisch)
Python und Ruby teilen sich
Einschlussnotation in Python einrücken
Die findähnliche Sache der Liste in Python
Python asyncio und ContextVar
Liste der Python-Ausnahmeklassen
Liste mit Python initialisieren
Mayungos Python-Lernhinweis: Liste der Geschichten und Links
Implementierte List und Bool in Python und SQLite3 (persönliche Notiz)
Liste der Python-Bibliotheken für Datenwissenschaftler und Dateningenieure
Schreiben mit Lambda-Ausdruck und Filterfunktion und Schreiben mit Listeneinschlussnotation
[Python] So sortieren Sie Diktate in Listen und Instanzen in Listen
Generieren Sie Fibonacci-Zahlen mit Python-Closures, Iteratoren und Generatoren
EP 7 Listenverständnisse anstelle von Karte und Filter verwenden
Programmieren mit Python und Tkinter
Python-Handspiel (zweidimensionale Liste)
Ver- und Entschlüsselung mit Python
Sehen wir uns die Sprachspezifikationen für Python-Iteratoren und -Generatoren an
Python: Klassen- und Instanzvariablen
3-3, Python-Zeichenfolge und Zeichencode
Python-Liste, für Anweisung, Wörterbuch
Python 2-Serie und 3-Serie (Anaconda Edition)
Python und Hardware-Verwenden von RS232C mit Python-
Zusammenfassung der Python3-Listenoperationen
Python auf Ruby und wütend Ruby auf Python
Python Real Number Division (/) und Integer Division (//)