Python Enumerate: Selitys esimerkein

Listojen ja muiden iteroitavien objektien käsittely on yleinen tehtävä . Joskus saatat joutua kiertämään näitä iteraatioita samalla kun pidät kirjaa nykyisen elementin indeksistä tai lukumäärästä. Siellä Pythonin sisäänrakennettu enumerate()-funktio tulee apuun.

Pythonin enumerate()-funktio tarjoaa sinulle kätevän tavan käyttää sekä kohteen hakemistoa että itse alkiota, kun selaat luetteloa tai mitä tahansa iteroitavaa objektia.

Python Enumerate: Selitys esimerkein

Tämä toiminto tekee , luettavasta ja tehokkaasta. Sen avulla voit selata elementtejä ja hakea sekä niiden indeksin että arvon. Sen sijaan, että alustat ja lisäät laskuria manuaalisesti silmukassa, voit luottaa siihen, että enumerate() tekee työn puolestasi.

Tässä artikkelissa opit Pythonin sisäänrakennetusta enumerate()-funktiosta, sen merkityksestä Python- koodissasi ja sen käyttötapauksista.

Mennään asiaan!

Sisällysluettelo

Mikä on Python Enumerate -funktio?

Kuvittele, että työskentelet luettelotietorakenteen kanssa ja haluat tehdä jotain jokaiselle kohteelle, mutta sinun on myös tiedettävä kohteen sijainti luettelossa.

Ilman Python enumerate() voit päättää käyttää laskurimuuttujaa, jota lisäät jokaisessa silmukan iteraatiossa. Mutta tämä lähestymistapa voi olla altis virheille, eikä se ole kovin "Pythonic".

Enumerate on Pythonin sisäänrakennettu toiminto, jonka avulla voit iteroida iteroitavissa olevia objekteja pitäen samalla kirjaa nykyisen kohteen hakemistosta.

Nyt kun olet ymmärtänyt, mikä Pythonin enumerate()-funktio on, siirrytään seuraavassa osiossa Python-funktion enumerate() syntaksiin!

Mikä on Python Enumerate -funktion syntaksi?

Funktion syntaksi määrittää, kuinka tätä funktiota tulee käyttää koodissasi, mukaan lukien mitä argumentteja se ottaa ja mitä se palauttaa.

Python Enumerate: Selitys esimerkein

Funktio enumerate () käyttää seuraavan syntaksin:

enumerate(, start=0)
  • : Tämä on pakollinen parametri, ja se voi olla mikä tahansa Python-iteroitava, kuten luettelo tai monikko.

  • start : Tämä toinen parametri on valinnainen parametri, joka määrittää laskurin aloitusarvon. Oletuksena se on 0.

enumerate () -funktion palautusarvo on enumerate-objekti, joka on iteraattori, jossa on parit (indeksi, elementti) kullekin tietyn iterable-kohdan alkiolle.

Voit käyttää tätä iteraattoria kohdassa a käyttääksesi sekä hakemistoa että alkiota samanaikaisesti.

Seuraava esimerkki näyttää, kuinka voit käyttää enumerate()- funktiota luettelon kanssa:

fruits = ['apple', 'banana', 'cherry']

for index, item in enumerate(fruits):
    print(index, item)

Tässä esimerkissä enumerate() -silmukat enumerate-objektien, eli hedelmäluettelon , läpi ja määrittää jokaiselle kohteelle indeksin, alkaen 0:sta.

For - silmukka purkaa sitten indeksin ja alkion luetetusta objektista. Näin voit suorittaa toimintoja sekä indeksin että kohteen arvon perusteella.

Käytämme tulostustoimintoa indeksin ja kohteen tulostamiseen näytölle. Koodin tulos on alla olevassa kuvassa:

Python Enumerate: Selitys esimerkein

Tulosteessa näet, että aloitusindeksi on 0. Tämä on Python-tulkin automaattisesti määrittämän indeksin oletusarvo.

Voit kuitenkin myös määrittää laskurin eri aloitusarvon antamalla valinnaisen käynnistysparametrin alla olevan koodin mukaisesti:

for index, item in enumerate(fruits, start=1):
    print(index, item)

Tulos on samanlainen kuin yllä oleva. Ainoa ero on, että indeksi alkaa nyt 1:stä.

Python Enumerate: Selitys esimerkein

Joten nyt sinulla on kahva enumerate()-funktion syntaksista Pythonissa. Mutta kuten minkä tahansa työkalun kanssa, on tärkeää tietää, milloin ja missä sitä käytetään.

Siksi aiomme tutkia joitain yleisiä käyttötapauksia enumerate()-funktiolle seuraavassa osassa!

5 Python Enumerate -funktion käyttötapaukset

Pythonin enumerate-toimintoa käytetään laajasti skenaarioissa, joissa sekä indeksi että iteroitavan objektin arvo ovat tärkeitä ohjelmoijalle.

Olemme luetelleet alla joitain yleisiä käyttötapauksia Pythonin luettelotoimintojen käyttöön.

1. Enumerate-toiminnon käyttäminen Python-luetteloiden kanssa

Pythonissa a on sisäänrakennettu tietorakenne, jonka avulla voit tallentaa useita kohteita yhteen muuttujaan. Ajattele luetteloa konttina, johon voit laittaa erilaisia ​​​​tuotteita, ja he ylläpitävät järjestystä.

enumerate()-funktiota voidaan käyttää listoissa useilla tavoilla, kuten:

A. Listan elementtien ja niiden indeksien käyttäminen Python Enumerate -ohjelmalla

Yksi yleisimmistä enumerate():n käyttötapauksista on, kun sinun on käytettävä sekä luettelon elementtejä että niiden indeksejä. Enumerate antaa sinun tehdä tämän puhtaalla ja tehokkaalla tavalla.

Seuraavassa on esimerkki luettelon elementtien ja niiden indeksien käyttämisestä:

fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
for index, fruit in enumerate(fruits):
    print(f"At index {index}, the fruit is {fruit}.")

Tämän koodin tulos on alla olevassa kuvassa:

Python Enumerate: Selitys esimerkein

B. Listan elementtien muokkaaminen Python Enumerate -ohjelmalla

Kun haluat muokata luettelon elementtejä niiden indeksin perusteella, enumerate() on erinomainen työkalu. Voit käyttää hakemistoa silmukan sisällä ja muokata sitä luettelon avulla.

Seuraavassa on esimerkki luetteloelementtien muokkaamisesta enumerate-toiminnolla:

numbers = [1, 2, 3, 4, 5]

for i, num in enumerate(numbers):
    numbers[i] = num * 2

Tämä Python-koodi luo numeroluettelon väliltä 1–5. Sitten se käyttää for-silmukkaa ja enumerate()-funktiota iteroidakseen luetteloa.

Jokaisella iteraatiolla se kertoo nykyisen numeron (num) kahdella ja määrittää sen uudelleen samaan kohtaan luettelossa (numerot[i]).

Tuloksena on, että kaikki alkuperäisen luettelon numerot tuplataan alla olevan kuvan mukaisesti:

Python Enumerate: Selitys esimerkein

C. Kahden listan elementtien vertailu Python Enumerate -sovelluksella

Jos vertaat kahden eri luettelon elementtejä, enumerate() voi tarjota indeksin, jonka tarvitset molempien luetteloiden elementtien käyttämiseen samanaikaisesti.

Seuraavassa on esimerkki enumerate-funktion käyttämisestä kahden luettelon elementtien vertailuun:

list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 0, 5]
for i, value in enumerate(list1):
    if value != list2[i]:
        print(f"Difference at index {i}: {value} (list1) vs {list2[i]} (list2)")

Tässä koodissa määritämme ensin kaksi listaa, lista1 ja lista2. Sitten toistamme listan1 läpi käyttämällä for-silmukkaa enumerate(), joka tarjoaa indeksin (i) ja kunkin kohteen arvon.

Jos luettelon 1 nykyinen kohde ei vastaa vastaavaa kohdetta listassa 2, se tulostaa eron indeksin ja poikkeavat arvot molemmista listoista.

Tämän koodin tulos näkyy alla:

Python Enumerate: Selitys esimerkein

2. Enumerate-toiminnon käyttäminen Python Tuplesin kanssa

Pythonissa monikko on järjestetty kokoelma elementtejä, samanlainen kuin luettelo. Ainoa ero on, että monikko on muuttumaton, eli sen sisältöä ei voi muuttaa luomisen jälkeen.

Seuraavassa on joitain tapauksia, joissa voit käyttää enumerate-komentoa Python-kansojen kanssa.

A. Python Enumerate():n käyttäminen elementin etsimiseen monikkosta

Käsitellessäsi monikkoa Pythonissa saatat usein joutua etsimään, onko elementtiä monikkossa.

Seuraava esimerkkikoodi havainnollistaa enumerate-komentoa elementtien etsimiseen monikkosta:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
for i, fruit in enumerate(fruits):
    if fruit == 'mango':
        print(f"'mango' found at position {i}")

Tämä koodi tulostaa "mango löytyi paikasta 2", koska "mango" on hakemistossa 2 monissa.

Python Enumerate: Selitys esimerkein

B. Python Enumerate():n käyttäminen sanakirjan luomiseen monistasta

Jos sinulla on monikko ja sinun on muutettava se sanakirjaksi, Pythonin enumerate()-funktio voi olla työkalusi.

Esimerkkikoodi näyttää, kuinka voit luoda sanakirjan monista enumerate-komennolla:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')

fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)

Tämä koodi tulostaa sanakirjan, jossa avaimet ovat indeksit ja arvot monikko elementtejä.

Python Enumerate: Selitys esimerkein

3. Enumerate-toiminnon käyttäminen Python-sanakirjojen kanssa

Pythonissa sanakirja on muuttuva, järjestämätön , jossa jokaisen avaimen on oltava yksilöllinen. Ajattele sitä tosielämän sanakirjana: etsit sanan (avain) ja saat sen määritelmän (arvon).

Seuraavassa on joitain tapauksia, joissa voit käyttää enumeratea Python-sanakirjojen kanssa:

A. Sanakirjan avainten ja arvojen kiertäminen

Voit käyttää enumerate()-funktiota sanakirjan avaimien ja arvojen selaukseen.

Funktio enumerate() lisää laskurin iteroitavaan objektiin (kuten sanakirjoihin), jolloin pääset käsiksi nykyiseen indeksiarvoon.

Alla on sanakirja:

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, k in enumerate(example_dict):
    print(i, k)

Tässä Python-koodissa luomme ensin sanakirjan nimeltä example_dict. Sitten käytämme enumerate()-funktiota iteroidaksemme sanakirjaa.

Jokaiselle iteraatiolle tulostetaan sanakirjasta silmukkamäärä (jonka antaa i ja alkaa 0:sta) ja nykyinen avain (joka on k).

Python Enumerate: Selitys esimerkein

B. Python Enumeraten yhdistäminen Items-funktioon

Voit myös käyttää sekä avaimia että sanakirjan arvoja items()- funktiolla yhdessä enumerate() -funktion kanssa . Item ()- funktio palauttaa iteroitavan kokoelman avainarvopareja monikkoina.

Alla oleva esimerkki osoittaa, kuinka voit käyttää items()- funktiota enumerate() -funktion kanssa :

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, (k, v) in enumerate(example_dict.items()):
    print(i, k, v)

Tässä koodissa luomme sanakirjan nimeltä , jonka jälkeen käytämme enumerate()-funktiota iteroidaksemme sanakirjan avainarvopareja. Jokaisen iteroinnin aikana tulostamme silmukkaindeksin 'i', nykyisen avaimen 'k' ja sitä vastaavan arvon 'v'.

Python Enumerate: Selitys esimerkein

Sinulla on nyt vankka käsitys Pythonin enumerate()-funktion käytöstä joissakin yleisissä skenaarioissa. Mutta enumerate():llä on vielä enemmän tarjottavaa.

Sukellaanpa joitain edistyneitä käyttötapauksia, jotka ympäröivät enumerate():tä seuraavassa osiossa!

3 Python Enumeraten edistyneitä käyttötapauksia

Tässä osiossa mennään perusteita pidemmälle ja tutkitaan joitain Pythonin enumerate-funktion edistyneitä käyttötapauksia.

Käsittelemme seuraavat käyttötapaukset:

  1. Enumeraten käyttö Python-luokkien kanssa

  2. Enumeraten käyttö Enum-luokkien kanssa

  3. Enumerate-sovelluksen käyttö tilauksen peruutukseen

Mennään asiaan!

1. Enumerate-toiminnon käyttö Python-luokkien kanssa

Python-ohjelmointimatkallasi saatat kohdata tilanteita, joissa haluat käyttää enumeratea mukautettujen luokkien kanssa.

Tämän saavuttamiseksi luokkasi tulisi ottaa käyttöön iter()- metodi, joka mahdollistaa sen iteroitavuuden.

Harkitse luokkaa Color , joka tallentaa värien nimet ja niihin liittyvät heksadesimaaliarvot:

class Color:
    def __init__(self, colors: dict):
        self.colors = colors

    def __iter__(self):
        return iter(self.colors.items())

colors = Color({"red": "#FF0000", "green": "#00FF00", "blue": "#0000FF"})

for index, (name, hex_value) in enumerate(colors):
    print(f"{index}: {name} => {hex_value}")

Tässä koodissa luomme väriluokan, joka ottaa sanakirjan värien nimistä ja niitä vastaavista heksadesimaaliarvoista.

Kun käytät enumerate()-komentoa silmukassa, se tarjoaa indeksin jokaisen avain-arvo-parin mukana. Tämän avulla voit tulostaa indeksin, värin nimen ja sen heksadesimaaliarvon muotoiltuun merkkijonoon.

Python Enumerate: Selitys esimerkein

2. Python Enumerate -ohjelman käyttö Enum Classes -luokkien kanssa

Pythonissa on sisäänrakennettu Enum -luokka, jonka avulla voit luoda luettelointityyppejä automaattisesti määritetyillä kokonaislukuarvoilla.

Katso esimerkiksi seuraavaa koodia:

from enum import Enum, auto

class Direction(Enum):
    NORTH = auto()
    EAST = auto()
    SOUTH = auto()
    WEST = auto()

for index, direction in enumerate(Direction):
    print(f"{index}: {direction.name} => {direction.value}")

Tässä komentosarjassa määritämme neljän jäsenen (POHJOINEN, ITÄ, ETELÄ ja LÄNSI) luettelointisuunnan Pythonin enum-moduulin avulla. Auto()-funktio määrittää jokaiselle jäsenelle automaattisen arvon.

Kun käytät enumerate()-komentoa silmukassa, se tarjoaa indeksin jokaisen luettelointijäsenen mukana. Näin voit tulostaa hakemiston, jäsenen nimen ja sille automaattisesti määritetyn arvon muotoillun merkkijonon muodossa.

Tämän koodin tulos on alla olevassa kuvassa:

Python Enumerate: Selitys esimerkein

3. Python Enumerate -ohjelman käyttäminen tilauksen käänteessä

Joissakin tapauksissa saatat haluta luetella kohteet käänteisessä järjestyksessä. Voit saavuttaa tämän käyttämällä sisäänrakennettua reversed()- funktiota yhdessä enumerate() -funktion kanssa .

Seuraava esimerkki osoittaa kohteiden luettelemisen käänteisessä järjestyksessä:

my_list = ["apple", "banana", "cherry"]

for index, item in enumerate(reversed(my_list)):
    print(f"{index}: {item}")

Tässä koodissa toistamme my_list käänteisen version enumerate() avulla. Tämä tarjoaa sinulle indeksin ja kohteen käänteisestä luettelosta kussakin iteraatiossa. Sen avulla voit tulostaa hakemiston ja kohteen muotoillun merkkijonon muodossa.

Python Enumerate: Selitys esimerkein

Reverse () ei muuta alkuperäistä sekvenssiä; se luo uuden iteraattorin, joka esittää kohteet käänteisessä järjestyksessä.

Saat lisätietoja Pythonin toiminnoista katsomalla seuraavaa videota:

Lopulliset ajatukset

Kun jatkat Python-matkaasi, enumerate()-funktion hallitseminen on välttämätöntä. Se on työkalu, joka parantaa koodin luettavuutta ja tehokkuutta.

Käyttämällä enumerate() voit käyttää saumattomasti sekä indeksiä että silmukoidesi arvoa, mikä vähentää vastamuuttujien tai indeksoinnin tarvetta. Se yksinkertaistaa koodiasi ja tekee siitä pythonicisemman.

Iteroitpa luetteloita, ketjuja, merkkijonoja tai sanakirjoja, enumerate() osoittautuu arvokkaaksi työkaluksi. Ymmärtämällä ja harjoittelemalla enumerate(:lla) otat merkittävän askeleen Python-ohjelmointitaitosi hiomisessa!


Suhde- ja taajuustaulukot Excelissä

Suhde- ja taajuustaulukot Excelissä

Aioin sukeltaa Excelin taajuustaulukoihin sekä suhteellisiin taulukoihin. Selvitä, mitä ne ovat ja milloin niitä käytetään.

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Opi lataamaan ja asentamaan DAX Studio ja Tabular Editor 3 ja miten ne määritetään käytettäväksi LuckyTemplatesissa ja Excelissä.

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

Tämä blogi sisältää Shape Map -visualisoinnin tilaanalyysiä varten LuckyTemplatesissa. Näytän sinulle, kuinka voit käyttää tätä visualisointia tehokkaasti sen ominaisuuksien ja elementtien kanssa.

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

Tässä opetusohjelmassa esittelen ainutlaatuisen idean talousraportoinnista, joka allokoi tulokset LuckyTemplatesin sisällä olevien taulukkopohjien ennalta määrittämiseen.

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

Luo DAX-suureita LuckyTemplatesissa käyttämällä olemassa olevia suureita tai kaavoja. Tätä kutsun mittahaaroitustekniikaksi.

Tehokkain toimintopuhelu LuckyTemplatesissa

Tehokkain toimintopuhelu LuckyTemplatesissa

Tässä blogissa tutustu LuckyTemplates-tietojoukkoon, tehokkaimpaan funktiokutsuun, joka tuo tuhansia M- ja DAX-funktioita sormiesi ulottuville.

Datamallinnustekniikat DAX-mittausten järjestämiseen

Datamallinnustekniikat DAX-mittausten järjestämiseen

Tämän päivän opetusohjelmassa jaan muutamia datamallinnustekniikoita DAX-mittausten järjestämiseksi paremmin tehokkaamman työnkulun aikaansaamiseksi.

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates on loistava työkalu talousraportointiin. Tässä on opetusohjelma räätälöityjen taulukoiden luomisesta LuckyTemplates-talouden hallintapaneelillesi.

Power Queryn kielivirran parhaat käytännöt

Power Queryn kielivirran parhaat käytännöt

Tässä opetusohjelmassa keskustellaan Power Query Language Flowsta ja siitä, kuinka se voi auttaa luomaan sujuvan ja tehokkaan dataraportin.

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

Keskustelen yhdestä suosikkitekniikoistani mukautettujen LuckyTemplates-kuvakkeiden ympärillä, joka käyttää mukautettuja kuvakkeita dynaamisella tavalla LuckyTemplates-visuaaleissa.