NamedTuple-perusteet
Luo kevyitä muuttumattomia tietueita
NamedTuple-perusteet on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.
Mikä NamedTuple on
Nimetty monikko on monikko, jonka alkioilla on myös nimet. Saatte monikon keveyden ja muuttumattomuuden sekä luettavan attribuuttien käytön. Se sopii erinomaisesti pienille tietueille.
Tavallisten monikkojen ongelma
Tavalliset monikot perustuvat sijainteihin, joten jokaisen indeksin merkitys on muistettava. Koodi kuten p[0] ja p[1] on helppo kirjoittaa väärin.
point = (1, 2)
print(point[0]) # x?
print(point[1]) # y?Luominen namedtuple-funktiolla
Tehdasfunktio collections.namedtuple luo uuden monikkoaliluokan. Antakaa sille tyypin nimi ja kenttien nimet.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p)Käyttö nimen perusteella
Nyt voitte lukea kentät nimen ettekä indeksin perusteella, mikä tekee koodista itsestään selvää.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x)
print(p.y)Edelleen monikko
Nimetty monikko on edelleen oikea monikko, joten indeksointi, purkaminen ja läpikäynti toimivat tavalliseen tapaan.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p[0])
x, y = p
print(x, y)Muuttumattomuus
Kuten kaikki monikot, nimetyt monikot ovat muuttumattomia. Kentän arvon määrittäminen nostaa poikkeuksen AttributeError.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
try:
p.x = 99
except AttributeError as e:
print('Cannot modify:', e)Muokatun kopion tekeminen
Koska monikkoa ei voi muuttaa, käyttäkää metodia _replace() uuden instanssin luomiseen niin, että jotkin kentät on muutettu.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
q = p._replace(y=99)
print(p)
print(q)Muuntaminen sanakirjaksi
Metodi _asdict() palauttaa kentät sanakirjana, mikä on hyödyllistä serialisoinnissa tai lokituksessa.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p._asdict())Kenttien tarkasteleminen
Attribuutti _fields luettelee kenttien nimet. Se on kätevä yleiskäyttöisessä koodissa, joka käy tietueen kentät läpi.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
print(Point._fields)Oletusarvot
Antakaa oletusarvot argumentilla defaults. Oletusarvot koskevat oikeanpuoleisia kenttiä aivan kuten funktion parametrien oletusarvot.
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y', 'z'], defaults=[0])
print(Point(1, 2))
print(Point(1, 2, 9))Useiden arvojen palauttaminen
Nimetyt monikot ovat parhaimmillaan funktion palautusarvoina. Sen sijaan että palauttaisitte nimeämättömän monikon, palauttakaa nimetty monikko, jotta kutsuja voi lukea kentät nimen perusteella.
from collections import namedtuple
Stats = namedtuple('Stats', ['minimum', 'maximum'])
def analyze(nums):
return Stats(min(nums), max(nums))
r = analyze([3, 1, 9, 4])
print(r.minimum, r.maximum)Pikatarkistus
Miten luotte nimetyn monikko-instanssin muokatun kopion?
Kertaus
Opitte luomaan kevyitä ja muuttumattomia tietueita.
namedtuplelisää monikkoihin kenttien nimet.- Kenttiä voi käyttää nimen tai indeksin perusteella, ja purkaminen toimii edelleen.
- Käyttäkää
_replace()-metodia muokattuihin kopioihin ja_asdict()-metodia muuntamiseen. _fieldsluettelee nimet jadefaultsmäärittää oletusarvot.
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 76
- Oppitunnit
- 320
Usein kysytyt kysymykset
Onko oppitunti ”NamedTuple-perusteet” ilmainen?
Kyllä – oppitunnin ”NamedTuple-perusteet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”NamedTuple-perusteet”?
Luo kevyitä muuttumattomia tietueita Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”NamedTuple-perusteet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?
Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Enum-luokka
- IntEnum ja Flag
- NamedTuple-perusteet
- typing.NamedTuple