Android

Python tæller

Enumerate - Intermediate Python Programming p.7

Enumerate - Intermediate Python Programming p.7

Indholdsfortegnelse:

Anonim

enumerate() er en indbygget funktion i Python, der giver dig mulighed for at have en automatisk tæller, mens du looper over iterables.

Python enumerate() Funktion

Funktionen enumerate() har følgende form:

enumerate(iterable, start=0)

Funktionen accepterer to argumenter:

  • iterable - Et objekt, der understøtter iteration. start - Det nummer, hvor tælleren starter fra. Dette argument er valgfrit. Som standard starter tælleren fra 0.

enumerate() returnerer et enumerate-objekt, som du kan kalde __next__() (eller next() i Python 2) -metoden for at få en tuple, der indeholder en tælling og den aktuelle værdi af den iterable.

Her er et eksempel på, hvordan man opretter en liste over tuples ved hjælp af list() og hvordan man sløjfer over en iterable:

directions = list(enumerate(directions)) for index, value in enumerate(directions): print("{}: {}".format(index, value))

0: north 1: east 2: south 3: west

Hvis den nulbaserede indeksering ikke fungerer for dig, skal du vælge et andet startindeks til optællingen:

directions = list(enumerate(directions, 1))

Funktionen enumerate() fungerer på ethvert iterable objekt. En iterable er en container, der kan iteres. Når man sætter det i enkle ord, betyder det et objekt, som du kan loop rundt med en for loop. De fleste af de indbyggede objekter i Python som strenge, lister og tuples er iterables.

Skriv mere Pythonic kode med enumerate()

Pythons for loop er helt forskellig fra den traditionelle C-stil for loop, der er tilgængelig på mange programmeringssprog. For-loop i Python svarer til andre sprogs foreach loop.

En almindelig teknik, der bruges af nye Python-udviklere til at få det tilsvarende indeks, når man håndterer iterables, er at bruge enten range(len(…)) mønster eller indstille og øge en tæller:

planets = for i in range(len(planets)): print("Planet {}: {}".format(i, planets))

planets = i = 0 for planet in planets: print("Planet {}: {}".format(i, planet)) i += 1

Loops ovenfor kan skrives på mere idiomatisk måde ved hjælp af enumerate() :

planets = for index, value in enumerate(planets): print("Planet {}: {}".format(index, value))

Alle metoder giver samme output:

Planet 0: Mercury Planet 1: Venus Planet 2: Earth Planet 3: Mars Planet 4: Jupiter Planet 5: Saturn Planet 6: Uranus Planet 7: Neptune

Konklusion

, har vi vist dig, hvordan du bruger Pythons enumerate() -funktion.

python