Ich habe Python more-itertools 2.5 → 2.6 verglichen

wo mehr-itertools von 2.5 auf 2.6 geändert

(Ändern) ilen

Die Implementierung hat sich von sum zu deque geändert. Warum deque?

python3


from collections import deque
n = 10000
%timeit sum(1 for _ in range(n))                      # 2.5
%timeit deque(enumerate(range(n), 1), maxlen=1)[0][0] # 2.6
>>>
1000 loops, best of 3: 439 µs per loop
1000 loops, best of 3: 289 µs per loop

In der Tat wird es schneller.

(Hinzufügen) teilen

Teilen Sie in die angegebene Anzahl, so dass sie ungefähr gleich groß sind.

python3


from more_itertools import divide, always_iterable, adjacent, groupby_transform, context
[tuple(i) for i in divide(3, range(10))]
>>>
[(0, 1, 2, 3), (4, 5, 6), (7, 8, 9)]

(Addition) always_iterable

Iterierbar bleibt wie es ist, und nicht iterierbare werden iterierbar.

python3


always_iterable(None)
>>>
()

always_iterable(1)
>>>
(1,)

always_iterable([1,3,5])
>>>
[1, 3, 5]

(Ergänzung) nebenan

Setzen Sie True vor und nach der Übereinstimmung der Bedingungen.

python3


list(adjacent(lambda x: x==3, range(7)))
>>>
[(False, 0),
 (False, 1),
 (True, 2),
 (True, 3),
 (True, 4),
 (False, 5),
 (False, 6)]

list(adjacent(lambda x: x==3, range(7), distance=2)) #Bis zu 2 Unterschiede vorher und nachher
>>>
[(False, 0),
 (True, 1),
 (True, 2),
 (True, 3),
 (True, 4),
 (True, 5),
 (False, 6)]

(Hinzufügen) groupby_transform

Konvertieren Sie Schlüssel und Werte nach der Gruppierung.

python3


[(i,list(j)) for i,j in groupby_transform([1,1,3,2,2,2],
                                          lambda x: f'<{x}>', #Schlüsselkonvertierung
                                          lambda x: x*10)]    #Wertumwandlung
>>>
[('<1>', [10, 10]), ('<3>', [30]), ('<2>', [20, 20, 20])]

(Hinzugefügt) Kontext (In 3.0 entfernt)

Derjenige, mit dem mit verwendet werden kann, wird als Generator verwendet.

python3


with open(Dateiname) as fp:
    print(fp.read())

↓ Sie können so schreiben

print(*[fp.read() for fp in context(open(Dateiname))])

Referenz: Einführung von itertools und mehr-itertools

das ist alles

Recommended Posts

Ich habe Python more-itertools 2.5 → 2.6 verglichen
Ich habe Java und Python verglichen!
Ich habe Python gestartet
Ich habe Python3 Standard Argparse und Python-Fire verglichen
Ich habe Python> autopep8 ausprobiert
Ich habe "Python Dictionary Type" und "Excel Function" verglichen.
Python neu lernen (Algorithmus I)
Ich habe Python> Decorator ausprobiert
Warum ich mich für Python entschieden habe
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe Python auf Japanisch geschrieben
Curl -I Python One Liner
Ich habe einen Blackjack mit Python gemacht!
5 Gründe, warum ich zu Python gekommen bin
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe mit Python einen Blackjack gemacht.
Ich habe Klinge und Jinja2 verglichen
Was ich in Python gelernt habe
Ich habe die grundlegende Python-Grammatik gelernt
Ich habe den Verwaltungsbildschirm von Django verglichen
Ich habe Wordcloud mit Python gemacht.
Ich habe die Python-Quelle heruntergeladen
Ich habe die Berechnungszeit des in Python geschriebenen gleitenden Durchschnitts verglichen
Ich habe einen Line-Bot mit Python gemacht!
Ich habe versucht, Python zu berühren (Installation)
Python
pyenv-vertualenv installiert die Python3-Serie nicht gut
Ich habe die Konstruktion der Mac Python-Umgebung überprüft
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.
Ich habe versucht, WebScraping mit Python.
Ich kann mich nicht an reguläre Python-Ausdrücke erinnern
Ich habe meine eigene Python-Bibliothek erstellt
Notation, auf die ich beim Lernen von Python gestoßen bin
[Python] Ich habe versucht, marginalisiertes Gibbs-Sampling zu implementieren
Ich habe eine SMS mit Python gesendet
Ich habe Qiskit und Blueqat (Anfänger) verglichen.
Ich habe Fizz Buzz in Python geschrieben
Ich habe Progetes Python-Lernkurs I besucht
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe es mit Grumpy versucht (Python ausführen).
Ich mochte den Tweet mit Python. ..
Ich habe Java und Ruby persönlich verglichen
Scikit-learn kann nicht in Python installiert werden
Ich habe Node.js und Python beim Erstellen eines Miniaturbilds mit AWS Lambda verglichen
Ich habe mit PyQt5 und Python3 gespielt
Ich habe versucht, die "Lebenstein-Distanz" mit Python zu berechnen
Ich möchte mit Python debuggen
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe mit Python einen Daemon erstellt
Ich habe Line Benachrichtigung in Python versucht
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe den Stack in Python geschrieben
Ich habe die numerische Berechnung von Python durch Rust ersetzt und die Geschwindigkeit verglichen
Ich habe Python 2.7 in Sakura VPS 1 GB installiert.
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren