Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Sisäänrakennettujen Itteraattoreiden Käyttö | Python Iterators
Funktionaalisen Ohjelmoinnin Käsitteet Pythonissa

bookSisäänrakennettujen Itteraattoreiden Käyttö

Pyyhkäise näyttääksesi valikon

Python tarjoaa useita sisäänrakennettuja iteraattoreita, joiden avulla kokoelmia voidaan käsitellä ilmaisullisesti ja muistitehokkaasti. Kolme yleisimmin käytettyä ovat enumerate, zip ja map.

  • enumerate mahdollistaa sekvenssin läpikäynnin siten, että sekä indeksistä että arvosta pysytään tietoisina;
  • zip mahdollistaa useiden sekvenssien rinnakkaisen iteroimisen, jolloin alkioita yhdistetään pareiksi;
  • Muista, että map on korkeamman asteen funktio – käsite, jota käytettiin aiemmin tietojen käsittelyyn. Tässä tarkastellaan samaa työkalua iteraattoriprotokollan näkökulmasta. Sen sijaan, että sitä pidettäisiin vain tapana käsitellä listaa, nähdään se nyt erikoistuneena objektina, joka tuottaa tuloksia tarpeen mukaan, muuttaen käsityksen map-funktiosta staattisesta työkalusta dynaamiseksi ja muistitehokkaaksi virtaukseksi.

Nämä iteraattorit ovat korvaamattomia esimerkiksi rinnakkaisten listojen käsittelyssä, tietojen muuntamisessa ja tiiviiden silmukoiden kirjoittamisessa. Kuten videolla esitettiin, niiden oikea käyttö voi yksinkertaistaa koodia ja vähentää virheitä, erityisesti suurten tai monimutkaisten tietoaineistojen kanssa työskenneltäessä.

123456
# Using enumerate and zip to process two lists in parallel names = ["Alice", "Bob", "Charlie"] scores = [85, 92, 78] for idx, (name, score) in enumerate(zip(names, scores), start=1): print(f"{idx}. {name} scored {score}")
copy

Tässä koodissa zip(names, scores) yhdistää jokaisen nimen vastaavaan pistemääräänsä, luoden iteraattorin, jonka alkiot ovat pareja kuten (("Alice", 85), 85). Kun tämä kääritään enumerate-funktion sisään, lisätään laskuri alkaen arvosta 1, jolloin jokaisella iteraatiolla saadaan indeksi, nimi ja pistemäärä. Silmukka tulostaa jokaisen opiskelijan nimen ja pistemäärän, etuliitteenä heidän sijaintinsa listassa. Tämä tapa on sekä tiivis että selkeä, ja osoittaa kuinka sisäänrakennetut iteraattorit helpottavat useiden sekvenssien käsittelyä.

question mark

Mikä on enumerate- ja zip-funktioiden yhdistämisen päätarkoitus tässä koodiesimerkissä?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 5. Luku 1
some-alt