Python

Python genaamdtupletu

Python genaamdtupletu

Python komt met veel ingebouwde gegevensstructuren zoals lijsten, woordenboeken en tupels om de gegevens efficiënt op te slaan en te beheren. De namedtuple is de woordenboekachtige container die beschikbaar is in de module "verzamelingen". Net als de woordenboeken bevat de namedtuple ook de sleutels die zijn toegewezen aan waarden. De genoemde tuple maakt het echter mogelijk toegang te krijgen tot de waarden via sleutels en ook via indexen. In vergelijking met de Python-woordenboeken is toegang tot de waarden via indexen de extra functionaliteit in namedtuple. Dit artikel legt de Python genaamdtuple in detail uit met voorbeelden.

Toegang krijgen tot waarden uit de namedtuple

De waarden binnen de namedtuple zijn op de volgende manieren toegankelijk:

  1. Met behulp van de toetsen
  2. Door gebruik te maken van de indexen
  3. Door de functie getattr() te gebruiken

Omdat de benoemde tuple het veld omzet in de attributen, is het daarom gemakkelijk om toegang te krijgen tot de waarden met de functie getattr().

Voorbeelden

Laten we nu enkele voorbeelden bekijken om de creatie en werking van namedtuple te begrijpen. Om de namedtuple te maken en te gebruiken, moeten we eerst de collecties-module importeren. In het onderstaande voorbeeld wordt een benoemdetuple voor een leraar gemaakt. De sleutels van de genoemde tuple zijn respectievelijk naam, leeftijd en afdeling. De waarden zijn toegankelijk via indexen en sleutels.

#importeren van de collecties module
collecties importeren
#een benoemdetuple maken voor een leraar
#naam, leeftijd en afdeling zijn de sleutels
Leraar= collecties.nametuple('Leraar',['naam','leeftijd','afdeling'])
# maak een nieuwe leraar en voeg de waarden toe
leraar_john = Leraar("John",29,"Informatica")
#toegang tot de docentwaarden met behulp van indexen
print("Toegang tot waarden met indexen:")
print("De naam van de leraar is:",teacher_john[0])
print("Leeftijd leraar is:",teacher_john[1])
print("Lerarenafdeling is:",teacher_john[2])
#toegang tot de docentwaarden met behulp van toetsen
print("Toegang tot waarden met toetsen:")
print("De naam van de leraar is:",teacher_john.naam)
print("Leeftijd leraar is:",teacher_john.leeftijd)
print("Departement Leraar is:",teacher_john.afdeling)

Uitgang:

Laten we nu toegang krijgen tot de waarden met behulp van de functie getattr(). De genoemde tuple en de sleutel worden als argument doorgegeven aan de functie getattr().

#importeren van de collecties module
collecties importeren
#een benoemdetuple maken voor een leraar
#naam, leeftijd en afdeling zijn de sleutels
Leraar = collecties.nametuple('Leraar',['naam','leeftijd','afdeling'])
# maak een nieuwe leraar en voeg de waarden toe
leraar_john = Leraar("John",29,"Informatica")
#toegang tot de docentwaarden met de functie getattr()
print(getattr(leraar_john,"naam"))
print(getattr(leraar_john,"leeftijd"))
print(getattr(leraar_john,"afdeling"))

Uitgang:

Populaire operaties van namedtuple

Sommige populaire functies zetten de andere verzamelingen, zoals lijsten, woordenboeken en tupels, om in benoemde tuple en retourneren de benoemde tuple-informatie. Hieronder volgen de functies die de andere collecties converteren naar namedtuple:-

De functie _make() converteert een itereerbaar object zoals list en tuple naar een benoemdetuple. De functie _asdict() maakt een orderDict van de genoemde tuple en geeft deze terug. Ten slotte converteert de operator ** een woordenboek naar een benoemdetuple. Bovendien zijn de volgende functies die de namedtuple-informatie retourneren:

De functie _fields() retourneert alle velden van de genoemde tuple, terwijl de functie _replace() een bepaalde waarde vervangt door een andere waarde.

Laten we de functies implementeren zoals hierboven vermeld in ons Python-script om de verschillende collecties om te zetten in namedtuple.

#importeren van de collecties module
collecties importeren
#een benoemdetuple maken voor een leraar
#naam, leeftijd en afdeling zijn de sleutels
Leraar = collecties.nametuple('Leraar',['naam','leeftijd','afdeling'])
# maak een nieuwe leraar en voeg de waarden toe
leraar_john = Leraar("John",29,"Informatica")
#lijst maken
leraar_list =["Mark",30,"Bedrijfsadministratie"]
#een woordenboek maken
leraar_dict ='name':'Talor','leeftijd': 32,'afdeling':'Economie'
#use _make() functie om lijst te converteren naar namedtuple
print ("Lijst naar conversie met naam : ")
afdrukken (leraar)._make(leraar_lijst))
#gebruik de functie _asdict() om een ​​OrderDict te maken
print ("Het bestelde Dict maken: ")
print(teacher_john)._asdict())
#gebruik de ** om een ​​woordenboek om te zetten in een benoemdetuple
print ("Het woordenboek converteren naar nametuple: ")
print(Leraar(**teacher_dict))

Uitgang:

Laten we nu de functies _fields() en _replace() gebruiken om respectievelijk de informatie van de sleutels op te halen en de sleutels te vervangen.

#importeren van de collecties module
collecties importeren
#een benoemdetuple maken voor een leraar
#naam, leeftijd en afdeling zijn de sleutels
Leraar= collecties.nametuple('Leraar',['naam','leeftijd','afdeling'])
# maak een nieuwe leraar en voeg de waarden toe
leraar_john = Leraar("John",29,"Informatica")
#use _fields functie om de sleutels van namedtuple te krijgen
print("De sleutels van namedtuple zijn:")
afdrukken (leraar)._velden)
#gebruik de functie _replace om de waarde te vervangen
print("De vervangwaarde van naam is:")
print(teacher_john)._replace(naam = 'Donald'))

Uitgang:
In de uitvoer is te zien dat de functie _fields de informatiesleutels retourneert en dat de functie _replace() de naam met succes vervangt.

Conclusie

De namedtuple is de woordenboekachtige container die aanwezig is in de module "collecties". Het bevat de sleutel en wijst de waarden toe aan de sleutel. In tegenstelling tot het Python-woordenboek, kunnen de waarden met de naam tuples ook worden geopend met behulp van de indexen en de functie getattr(). Dit artikel legt de genoemde tuple kort uit aan de hand van voorbeelden.

Beste opdrachtregelspellen voor Linux
De opdrachtregel is niet alleen je grootste bondgenoot bij het gebruik van Linux, hij kan ook de bron van entertainment zijn omdat je hem kunt gebruik...
Beste gamepad-toewijzingsapps voor Linux
Als je graag games op Linux speelt met een gamepad in plaats van een typisch toetsenbord- en muisinvoersysteem, zijn er enkele handige apps voor jou. ...
Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...