Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie das itertools-Modul der Python-Standardbibliothek

So verwenden Sie das itertools-Modul der Python-Standardbibliothek

高洛峰
Freigeben: 2017-03-21 11:27:54
Original
1890 Leute haben es durchsucht

Einführung

Offizielle Beschreibung: Funktionale Tools zum Erstellen und Verwenden von Iteratoren. Das heißt, Funktionen zum Erstellen effizienter Iteratoren.

itertools.chain(*iterable)

Mehrere Sequenzen als eine einzelne Sequenz zurückgeben.
Zum Beispiel:

import itertools
for each in itertools.chain('i', 'love', 'python'):
    print each
Nach dem Login kopieren

Ausgabe:

i
l
o
v
e
p
y
t
h
o
n
Nach dem Login kopieren

itertools.combinations(iterable, r)

Gibt „Kombinationen“ der angegebenen Länge zurück
Zum Beispiel:

import itertools
for each in itertools.combinations('abc', 2):
    print each
Nach dem Login kopieren

Ausgabe:

('a', 'b')
('a', 'c')
('b', 'c')
Nach dem Login kopieren

itertools.combinations_with_replacement(iterable, r)

Gibt eine „Kombination“ der angegebenen Länge und der zurück Elemente in der Kombination können wiederholt werden
Zum Beispiel:

import itertools
for each in itertools.combinations_with_replacement('abc', 2):
    print each
Nach dem Login kopieren

Ausgabe:

('a', 'a')
('a', 'b')
('a', 'c')
('b', 'b')
('b', 'c')
('c', 'c')
Nach dem Login kopieren

itertools.product(*iterable[,repeat])

Gibt alle Kombinationen der angegebenen Länge zurück, die als kartesisches Produkt verstanden werden können
Zum Beispiel:

import itertools
for each in itertools.product('abc', repeat=2):
    print each
Nach dem Login kopieren

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

itertools.premutations(iteravle[,r] )

Gibt eine Permutation der Länge r zurück
Zum Beispiel:

import itertools
for value in itertools.permutations('abc', 2):
    print value
Nach dem Login kopieren

Ausgabe:

('a', 'b')
('a', 'c')
('b', 'a')
('b', 'c')
('c', 'a')
('c', 'b')
Nach dem Login kopieren

itertools.compress(data,selector)

Gibt das entsprechende Datenelement mit Selektor als „True“ zurück
Zum Beispiel:

import itertools
for each in itertools.compress('abcd', [1, 0, 1, 0]):
    print each
Nach dem Login kopieren

Ausgabe:

a
c
Nach dem Login kopieren

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

Gibt eine Sequenz zurück, die mit „start“ beginnt und schrittweise ansteigt.
Zum Beispiel:

import itertools
for each in itertools.count(start=0, step=2):
    print each
Nach dem Login kopieren

Ausgabe:

1
2
3
.
.
Nach dem Login kopieren

itertools.cycle(iterable )

Iterator endlos iterieren
Zum Beispiel:

import itertools
for each in itertools.cycle('ab'):
    print each
Nach dem Login kopieren

Ausgabe:

a
b
a
b
.
.
Nach dem Login kopieren

itertools.dropwhile(predicate, iterable)

Bis das Prädikat wahr ist, werden iterierbare Folgedaten zurückgegeben, andernfalls werden sie gelöscht
Zum Beispiel:

import itertools
for each in itertools.dropwhile(lambda x: x<5, [2,1,6,8,2,1]):
    print each
Nach dem Login kopieren

Ausgabe:

6
8
2
1
Nach dem Login kopieren

itertools.groupby(iterable[,key])

Gibt eine Gruppe (Schlüssel, Itera) zurück, der Schlüssel ist der Wert von iterierbar, Itera sind alle Elemente, die dem Schlüssel entsprechen
Zum Beispiel:

import itertools
for key, vale in itertools.groupby('aabbbc'):
    print key, list(vale)
Nach dem Login kopieren

Ausgabe:

a ['a', 'a']
b ['b', 'b', 'b']
c ['c']
Nach dem Login kopieren

itertools.ifilter(predicate, iterable)

Gibt einen Elementiterator zurück, dessen Prädikatergebnis „True“ ist. Wenn das Prädikat „None“ ist, werden alle Elemente in iterable zurückgegeben, die „True“ sind.
Beispiel:

import itertools
for value in itertools.ifilter(lambda x: x % 2, range(10)):
    print value
Nach dem Login kopieren

Ausgabe:

1
3
5
7
9
Nach dem Login kopieren

itertools .ifilterfasle(predicate,iterable)

Gibt das Element zurück, dessen Prädikat False ist, werden alle Elemente in iterable zurückgegeben die falsch sind
Zum Beispiel:

import itertools
for value in itertools.ifilterfalse(lambda x: x % 2, range(10)):
    print value
Nach dem Login kopieren

Ausgabe:

0
2
4
6
8
Nach dem Login kopieren

itertools.imap(function,*iterables)

Entspricht map() in Iteratormodus
Zum Beispiel:

import itertools
for value in itertools.imap(lambda x, y: x+y, (1,2,3), (4,5,6)):
    print value
Nach dem Login kopieren

Ausgabe:

5
7
9
Nach dem Login kopieren

itertools.islice(iterable, start,stop[,step])

Entspricht Iteratorbasierter Slicing-Vorgang
Zum Beispiel:

import itertools
for value in itertools.islice('abcdefg', 1, 4, 2):
    print value
Nach dem Login kopieren

Ausgabe:

b
d
Nach dem Login kopieren

itertools.repeat(object,[,times])

Kehrt kontinuierlich zurück das Objektobjekt. Wenn Zeiten angegeben sind, werden Zeiten zurückgegeben
Beispiel:

import itertools
for value in itertools.repeat('a', 2):
    print value
Nach dem Login kopieren

Ausgabe:

a
a
Nach dem Login kopieren

itertools.starmap(function,iterable)

Gibt den Wert von function(iter) zurück, iter ist das Element von iterable
Zum Beispiel:

import itertools
for value in itertools.starmap(lambda x, y: x * y, [(1, 2), (3, 4)]):
    print value
Nach dem Login kopieren

Ausgabe:

2
12
Nach dem Login kopieren

itertools.takewhile(predicate ,iterable)

Gibt das iterierbare Element zurück, wenn das Prädikat wahr ist, nicht, wenn es falsch ist. Erneut zurückgeben, unterbrechen.
Zum Beispiel:

import itertools
for value in itertools.takewhile(lambda x: x < 5, [1, 3, 5, 6]):
    print value
Nach dem Login kopieren

Ausgabe:

1
3
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das itertools-Modul der Python-Standardbibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage