Maison >développement back-end >Tutoriel Python >Comment utiliser le module itertools de la bibliothèque standard Python

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

高洛峰
高洛峰original
2017-03-21 11:27:541918parcourir

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

Sortie :

i
l
o
v
e
p
y
t
h
o
n

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

Sortie :

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

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

Sortie :

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

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

('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

Sortie :

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

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

Sortie :

a
c

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

Sortie :

1
2
3
.
.

itertools.cycle(iterable. )

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

import itertools
for each in itertools.cycle('ab'):
    print each

Sortie :

a
b
a
b
.
.

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

Sortie :

6
8
2
1

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)

Sortie :

a ['a', 'a']
b ['b', 'b', 'b']
c ['c']

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
Sortie :

1
3
5
7
9
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
Sortie :

0
2
4
6
8
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
Sortie :

5
7
9
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
Sortie :

b
d
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
Sortie :

a
a
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
Sortie :

2
12
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
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!

Déclaration:
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