Comment utiliser le module itertools de la bibliothèque standard Python

高洛峰
Libérer: 2017-03-21 11:27:54
original
1849 Les gens l'ont consulté

Introduction

Description officielle : Outils fonctionnels pour créer et utiliser des itérateurs Fonctions pour créer des itérateurs efficaces.

itertools.chain(*iterable)

Renvoyer plusieurs séquences en une seule séquence.
Par exemple :

import itertools
for each in itertools.chain('i', 'love', 'python'):
    print each
Copier après la connexion

Sortie :

i
l
o
v
e
p
y
t
h
o
n
Copier après la connexion

itertools.combinations(iterable, r)

Renvoie les "combinaisons" de la longueur spécifiée
Par exemple :

import itertools
for each in itertools.combinations('abc', 2):
    print each
Copier après la connexion

Sortie :

('a', 'b')
('a', 'c')
('b', 'c')
Copier après la connexion

itertools.combinations_with_replacement(iterable, r)

Renvoie une "combinaison" de la longueur spécifiée, et le les éléments de la combinaison peuvent être répétés
Par exemple :

import itertools
for each in itertools.combinations_with_replacement('abc', 2):
    print each
Copier après la connexion

Sortie :

('a', 'a')
('a', 'b')
('a', 'c')
('b', 'b')
('b', 'c')
('c', 'c')
Copier après la connexion

itertools.product(*iterable[,repeat])

Renvoie toutes les combinaisons de la longueur spécifiée, qui peut être comprise comme un produit cartésien
Par exemple :

import itertools
for each in itertools.product('abc', repeat=2):
    print each
Copier après la connexion

('a', 'a')
('a', 'b' )
('a', 'c')
('b', 'a')
('b', 'b')
('b', 'c')
('c', 'a')
('c', 'b')
('c', 'c')

itertools.premutations(iteravle[,r] )

Renvoie une permutation de longueur r
Par exemple :

import itertools
for value in itertools.permutations('abc', 2):
    print value
Copier après la connexion

Sortie :

('a', 'b')
('a', 'c')
('b', 'a')
('b', 'c')
('c', 'a')
('c', 'b')
Copier après la connexion

itertools.compress(data,selector)

Renvoie l'élément de données correspondant avec le sélecteur comme True
Par exemple :

import itertools
for each in itertools.compress('abcd', [1, 0, 1, 0]):
    print each
Copier après la connexion

Sortie :

a
c
Copier après la connexion

itertools.count(start=0, step=1)

Renvoie une séquence commençant par start et augmentant par incrément infini
Par exemple :

import itertools
for each in itertools.count(start=0, step=2):
    print each
Copier après la connexion

Sortie :

1
2
3
.
.
Copier après la connexion

itertools.cycle(iterable. )

Itérer l'itérateur à l'infini
Par exemple :

import itertools
for each in itertools.cycle('ab'):
    print each
Copier après la connexion

Sortie :

a
b
a
b
.
.
Copier après la connexion

itertools.dropwhile(predicate, iterable)

Jusqu'à ce que le prédicat soit vrai, renvoyez les données suivantes itérables, sinon supprimez-les
Par exemple :

import itertools
for each in itertools.dropwhile(lambda x: x<5, [2,1,6,8,2,1]):
    print each
Copier après la connexion

Sortie :

6
8
2
1
Copier après la connexion

itertools.groupby(iterable[,key])

Renvoie un groupe (key, itera), key est La valeur de iterable, itera est tous les éléments égaux à key
Par exemple :

import itertools
for key, vale in itertools.groupby('aabbbc'):
    print key, list(vale)
Copier après la connexion

Sortie :

a ['a', 'a']
b ['b', 'b', 'b']
c ['c']
Copier après la connexion

itertools.ifilter(predicate, iterable)

Renvoie un itérateur d'élément dont le résultat du prédicat est True Si le prédicat est Aucun, renvoie tous les éléments de l'itérable qui sont True
Par exemple :

import itertools
for value in itertools.ifilter(lambda x: x % 2, range(10)):
    print value
Copier après la connexion
Sortie :

1
3
5
7
9
Copier après la connexion
itertools .ifilterfasle(predicate,iterable)

Renvoie l'élément dont le prédicat est False Si le prédicat est Aucun, renvoie tous les éléments de l'itérable. qui sont Faux

Par exemple :

import itertools
for value in itertools.ifilterfalse(lambda x: x % 2, range(10)):
    print value
Copier après la connexion
Sortie :

0
2
4
6
8
Copier après la connexion
itertools.imap(function,*iterables)

Équivalent à map() dans mode itérateur

Par exemple :

import itertools
for value in itertools.imap(lambda x, y: x+y, (1,2,3), (4,5,6)):
    print value
Copier après la connexion
Sortie :

5
7
9
Copier après la connexion
itertools.islice(iterable, start,stop[,step])

Équivalent à Opération de découpage basée sur un itérateur

Par exemple :

import itertools
for value in itertools.islice('abcdefg', 1, 4, 2):
    print value
Copier après la connexion
Sortie :

b
d
Copier après la connexion
itertools.repeat(object,[,times])

Renvoie en continu l'objet objet. Si times est spécifié, il renverra times times

Par exemple :

import itertools
for value in itertools.repeat('a', 2):
    print value
Copier après la connexion
Sortie :

a
a
Copier après la connexion
itertools.starmap(function,iterable)

Renvoie la valeur de function(iter), iter est l'élément de iterable

Par exemple :

import itertools
for value in itertools.starmap(lambda x, y: x * y, [(1, 2), (3, 4)]):
    print value
Copier après la connexion
Sortie :

2
12
Copier après la connexion
itertools.takewhile(predicate , itérable)

Renvoie l'élément itérable si le prédicat est vrai, pas si faux Retourne à nouveau, break.

Par exemple :

import itertools
for value in itertools.takewhile(lambda x: x < 5, [1, 3, 5, 6]):
    print value
Copier après la connexion
Sortie :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal