Python enumerate() Funktion: Loop, Tuple och String

⚡ Smart sammanfattning

Python enumerate() lägger till en automatisk räknare till alla itererbara, returnerande index-värde-par när du loopar. Här lär du dig dess syntax, det valfria startindexet och hur det fungerar på listor, tupler, strängar och ordböcker.

  • 🔢 Vad den gör: Lägger till en räknare till varje element i ett itererbart, returnerande index-värde-par.
  • ⚙️ Syntax: enumerate(iterbar, startIndex) tar en iterbar plus ett valfritt startindex.
  • 🔟 Anpassad start: startIndex anger var räkningen börjar; utelämnar det för att börja vid 0.
  • 🔁 Looping: Koppla den med en for-loop för att läsa index och värde tillsammans.
  • 📦 Vilken itererbar som helst: Fungerar med listor, tupler, strängar och ordböcker.
  • 🤖 AI-hjälp: Copilot och AI-verktyg autokompletterar enumerate()-loopar och omfaktorerar manuella räknare.

Enumerate() Funktion i Python

Vad är Python Räkna upp?

Python Räkna upp() är en inbyggd funktion tillgänglig med Python bibliotek. Den tar den givna inmatningen som en samling eller tuplar och returnerar den som ett uppräkningsobjekt. De Python Kommandot Enumerate() lägger till en räknare till varje objekt i det itererbara objektet och returnerar ett enumerate-objekt som en utdatasträng.

Syntax för Python räkna upp()

enumerate(iterable, startIndex)

Driftparametrar

Tre parametrar är:

  • Iterabel: ett objekt som kan loopas.
  • Startindex: (valfritt) Räkningen börjar med det värde som anges i startIndex för det första objektet i slingan och ökar det för nästa objekt tills det når slutet av slingan.

Men om startIndex inte anges kommer räkningen att börja från 0.

Returvärde

Det kommer att returnera ett iterabelt objekt, med countvalue för vart och ett av objekten till iteratorobjektet som ges som indata.

Enumerate() in Python Exempelvis

Enumerate-metoden kommer med en automatisk räknare/index för var och en av objekten som finns i Enumerate-listan i Python. Firstindex-värdet börjar från 0. Du kan också specificera startindex genom att använda den valfria parametern startIndex i enumerate.
Exempelvis
I koden nedan är mylist listan som ges till Enumerate-funktionen i Python. De list() funktion används för att visa Enumerate Python utgång.

Obs: Det finns inget startindex som används, därför börjar indexet för den första posten från 0.

Utdata från enumerate kommer att vara på följande sätt:

(0, item_1), (1, item_2), (2, item_3), … (n, item_n)

Fil: python_enumerate.py

mylist = ['A', 'B' ,'C', 'D']
e_list = enumerate(mylist)
print(list(e_list))

Produktion:

[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')]

UsingEnumerate() på en lista med startIndex

I exemplet nedan, startindexet som anges som 2. Indexet för det första objektet kommer att börja från det givna startindexet.

Exempel:

I exemplet nedan är mylist listan som ges att räkna upp. List()-funktionen används för att visa enumerate-utdata.

mylist = ['A', 'B' ,'C', 'D']
e_list = enumerate(mylist,2)
print(list(e_list))

Produktion:

[(2, 'A'), (3, 'B'), (4, 'C'), (5, 'D')]

Looping Över ett Enumerate-objekt

Exemplet visar uppräkning över ett objekt med och utan startIndex.

  • Den första for-loopen har inte startIndex, så indexet börjar från 0.
  • Den andra for-loopen har startIndex som 10, så indexet börjar från 10.

Exempel:

mylist = ['A', 'B' ,'C', 'D']

for i in enumerate(mylist):
  print(i)
  print("\n")

print("Using startIndex as 10")    

for i in enumerate(mylist, 10):
  print(i)
  print("\n")

Produktion:

(0, 'A')
(1, 'B')
(2, 'C')
(3, 'D')

Using startIndex as 10
(10, 'A')
(11, 'B')
(12, 'C')
(13, 'D')

Räknar upp en Tuple

I exemplet nedan kan du använda en tupel i en uppräkning. Du kan också använda ett startIndex, och nyckeln till varje objekt börjar från startIndexgiven.

Som standard är startIndex 0. Där ser du nyckeln som 0 för objekt A och 1 för B och så vidare.

Exempel:

my_tuple = ("A", "B", "C", "D", "E")
for i in enumerate(my_tuple):
  print(i)

Produktion:

(0, 'A')
(1, 'B')
(2, 'C')
(3, 'D')
(4, 'E')

Räkna upp en sträng

In Python, strängen är en array, och därför kan du loopa över den. Om du skickar en sträng till enumerate(), kommer utdata att visa dig index och värde för varje tecken i strängen.

Exempel:

my_str = "Guru99 "
for i in enumerate(my_str):
  print(i)

Produktion:

(0, 'G')
(1, 'u')
(2, 'r')
(3, 'u')
(4, '9')
(5, '9')

Räkna upp en ordbok

In Python, en ordbok listas inom parentes, inom dessa parenteser deklareras värdena.

Varje element är ett nyckel/värdepar och separeras med kommatecken. Du kan använda en ordbok i en enumerate() och se resultatet.

my_dict = {"a": "PHP", "b":"JAVA", "c":"PYTHON", "d":"NODEJS"}
for i in enumerate(my_dict):
  print(i)

Produktion:

(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')

Fördelar med att använda Enumerate

Här är fördelar/fördelar med att använda Enumerate in Python:

  • Enumerate låter dig gå igenom en lista, tupel, ordbok, sträng och ger värdena tillsammans med indexet.
  • För att få indexvärde med hjälp av for-loop kan du använda list.index(n). List.index(n) är dock mycket dyr eftersom den kommer att korsa for-loopen två gånger. Enumerate är mycket användbart i ett sådant fall eftersom det ger index och objekt på en gång.

Vanliga frågor

enumerate() är en inbyggd funktion som lägger till en räknare till en iterabel funktion, som en lista, tupel, sträng eller ordbok, och returnerar index-värde-par.

Syntaxen är enumerate(iterable, startIndex). Det iterbara värdet är vilket loopbart objekt som helst; startIndex är ett valfritt starttal. Utan det börjar räkningen från 0.

Skicka ett andra argument, som enumerate(mylist, 2). Räkningen börjar då från det värdet istället för 0, så det första elementet får index 2.

Ja. Att skicka en ordbok loopar över dess nycklar och parar ihop var och en med ett index. Räkna upp ordbokens items() när du också behöver värdena.

enumerate() är renare och snabbare än ett manuellt index eller list.index(n), som skannar två gånger och returnerar index och item tillsammans.

AI-assistenter som GitHub Copilot autokompletterar enumerate()-loopar, föreslår ett startIndex och omstrukturerar manuella räknare, vilket snabbar upp idiomatiska funktioner. Python och upptäcker fel ett för ett.

Ja. AI-drivna linters automatiserar denna refaktorering, identifierar range(len(x))-mönster och skriver om dem som enumerate(x) för renare och mer detaljerade resultat. Pythonic-slingor med identiskt beteende.

enumerate() returnerar ett enumerate-objekt, en iterator av (index, värde)-par. Loopa det direkt eller radbryt det i list() för att se alla par.

Sammanfatta detta inlägg med: