J'ai comparé Python more-itertools 2.5 → 2.6

où more-itertools est passé de 2.5 à 2.6

(Changer) ilen

La mise en œuvre est passée de somme à deque. Pourquoi 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

En effet, cela s'accélère.

(Ajouter) diviser

Divisez en le nombre spécifié afin qu'ils aient approximativement la même taille.

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)]

(Ajout) always_iterable

Iterable reste tel quel, et les non-itérables deviennent itérables.

python3


always_iterable(None)
>>>
()

always_iterable(1)
>>>
(1,)

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

(Ajout) adjacent

Définissez True avant et après où les conditions correspondent.

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)) #Jusqu'à 2 différences avant et après
>>>
[(False, 0),
 (True, 1),
 (True, 2),
 (True, 3),
 (True, 4),
 (True, 5),
 (False, 6)]

(Ajouter) groupby_transform

Convertissez les clés et les valeurs après le regroupement.

python3


[(i,list(j)) for i,j in groupby_transform([1,1,3,2,2,2],
                                          lambda x: f'<{x}>', #Conversion de clé
                                          lambda x: x*10)]    #Conversion de valeur
>>>
[('<1>', [10, 10]), ('<3>', [30]), ('<2>', [20, 20, 20])]

(Ajouté) contexte (Supprimé dans 3.0)

Celui qui peut être utilisé avec est utilisé comme générateur.

python3


with open(nom de fichier) as fp:
    print(fp.read())

↓ Tu peux écrire comme ça

print(*[fp.read() for fp in context(open(nom de fichier))])

Référence: Introduction d'itertools et plus-itertools

c'est tout

Recommended Posts

J'ai comparé Python more-itertools 2.5 → 2.6
J'ai comparé Java et Python!
J'ai commencé Python
J'ai comparé argparse standard python3 et python-fire
J'ai essayé Python> autopep8
J'ai comparé "type de dictionnaire python" et "fonction excel"
Réapprendre Python (algorithme I)
J'ai essayé Python> décorateur
Pourquoi j'ai choisi Python
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
J'ai écrit python en japonais
curl -I python une doublure
J'ai fait un blackjack avec du python!
5 raisons pour lesquelles je suis entré dans Python
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
J'ai fait un blackjack avec Python.
J'ai comparé lame et jinja2
Ce que j'ai appris en Python
J'ai appris la grammaire de base de Python
J'ai comparé l'écran de gestion de Django
J'ai créé wordcloud avec Python.
J'ai téléchargé la source python
J'ai comparé le temps de calcul de la moyenne mobile écrite en Python
J'ai fait un Line-bot avec Python!
J'ai essayé de toucher Python (installation)
Python
pyenv-vertualenv n'installe pas correctement la série python3
J'ai vérifié la construction de l'environnement Mac Python
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
J'ai essayé webScraping avec python.
Je ne me souviens pas des expressions régulières Python
J'ai créé ma propre bibliothèque Python
Notation que j'ai rencontrée lors de l'apprentissage de Python
[Python] J'ai essayé d'implémenter un échantillonnage de Gibbs marginalisé
J'ai envoyé un SMS avec Python
J'ai comparé Qiskit et Blueqat (débutant)
J'ai écrit Fizz Buzz en Python
J'ai suivi le cours d'apprentissage Python I de Progete
J'ai essayé d'utiliser Thonny (Python / IDE)
J'ai essayé Grumpy (allez exécuter Python).
J'ai aimé le tweet avec python. ..
J'ai personnellement comparé Java et Ruby
Scikit-learn ne peut pas être installé en Python
J'ai comparé Node.js et Python lors de la création d'une miniature à l'aide d'AWS Lambda
J'ai joué avec PyQt5 et Python3
J'ai essayé de calculer la "distance de Lebenstein" en utilisant Python
Je veux déboguer avec Python
J'ai essayé d'exécuter prolog avec python 3.8.2.
J'ai créé un démon avec Python
J'ai essayé la notification de ligne en Python
J'ai essayé la communication SMTP avec Python
J'ai écrit la pile en Python
J'ai remplacé le calcul numérique de Python par Rust et comparé la vitesse
J'ai mis Python 2.7 dans Sakura VPS 1 Go.
J'ai essayé de résumer la gestion des exceptions Python
J'ai essayé d'implémenter PLSA en Python