Advertentie

Een python-woordenboek is een gegevensstructuur die lijkt op een associatieve array in andere programmeertalen. Een array of een lijst indexeert elementen op positie. Een woordenboek daarentegen indexeert elementen op sleutels dat kunnen strings zijn. Beschouw een woordenboek als ongeordende sets van sleutel waarde paren.

een sleutel / waarde-paren van een python-woordenboek

In dit artikel laten we u kennismaken met het werken met het python-woordenboek.

Een woordenboek maken

Er zijn verschillende manieren om een ​​python-woordenboek te maken. De eenvoudigste maakt gebruik van initialisatie van accolades, met een syntaxis doet denken aan JSON Python en JavaScript laten communiceren met JSONVandaag laat ik je zien hoe je JSON kunt gebruiken om gegevens van JavaScript naar Python te verzenden. Ik zal bespreken hoe je een webserver instelt, samen met alle code die je nodig hebt. Lees verder .

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27}

U kunt ook cijfers als toetsen gebruiken. Wees echter voorzichtig met het gebruik van getallen met drijvende komma als sleutels, aangezien de

computer slaat deze op als benaderingen Alles wat u moet weten over RAM- en geheugenbeheerRAM is het kortetermijngeheugen van uw computer. Daarom heeft geheugenbeheer een aanzienlijke invloed op de systeemprestaties. Hier leggen we uit hoe RAM werkt en of je iets kunt doen om de efficiëntie te verhogen. Lees verder .

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} print rain_percent. print rain_percent [1980] # afdrukken. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

Sleutel / waarde-paren specificeren

U kunt ook een woordenboek maken en initialiseren met behulp van naamwaardeparen als trefwoordargumenten voor de dict () constructeur.

populatie = dict (Californië = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) print populatie. # afdrukken. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Serie van Key-Value Tuples

Nog een andere manier om een ​​woordenboek te maken, is door een reeks sleutelwaarde-tupels te gebruiken. Hier is hetzelfde voorbeeld als hierboven.

paren = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] populatie = dict (paren) print populatie. # afdrukken. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Dictbegrip

Dict-begrip biedt een coole syntaxis om een ​​dictaat te initialiseren als u de waarden kunt berekenen op basis van de sleutels. Het volgende initialiseert een dictaat van getallen en vierkante waarden voor een reeks getallen.

print {x: x ** 2 voor x in xrange (10, 20)} # afdrukken. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}

Hoe werkt het? Het laatste deel (voor x in x-bereik (10, 20)) retourneert een reeks getallen in het opgegeven bereik. Het dict begrip gedeelte ({x: x ** 2 ..}) loopt over dit bereik en initialiseert het woordenboek.

Werken met een Python-woordenboek

Wat kunt u doen met woordenboeken nadat u ze hebt gemaakt? Welnu, u kunt toegang krijgen tot elementen, waarden bijwerken, elementen verwijderen, enz.

Toegang tot Python Dictionary-elementen

Open een element van een dictaat met de sleutel tussen haakjes, net zoals je zou doen een array of een lijst Hoe arrays en lijsten werken in PythonArrays en lijsten zijn enkele van de nuttigste datastructuren bij het programmeren - hoewel weinig mensen ze ten volle benutten. Lees verder .

gedrukte bevolking ['Delaware'] # afdrukken. 897934.

Als de sleutel een cijfer is, hebt u de aanhalingstekens niet nodig. De uitdrukking ziet er dan uit als een lijst of matrixindexering.

print rain_percent [1980] # afdrukken. 17%

Het type sleutel bij het openen ervan moet overeenkomen met wat is opgeslagen in het Python-woordenboek. Het volgende veroorzaakt een fout omdat de opgeslagen sleutels cijfers zijn terwijl de toegangssleutel een tekenreeks is.

x = '1980' print rain_percent [x] # resultaten in 1 x = '1980' > 2 print rain_percent [x] KeyError: '1980'

Toegang tot een niet-bestaande sleutel is een fout.

rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} print rain_percent [1983] # prints 1 rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 print rain_percent [1983] KeyError: 1983.

Gebruik voor toegang tot een sleutel en geef een standaardwaarde op als de toewijzing niet bestaat krijgen() methode met standaardwaarde als het tweede argument.

print rain_percent.get (1985, '0%') # afdrukken. 0%

Controleren op bestaan

Wat als u wilt controleren op de aanwezigheid van een sleutel zonder daadwerkelijk te proberen er toegang toe te krijgen (en mogelijk een KeyError zoals hierboven)? Je kunt de in zoekwoord in het formulier toets in dct wat een boolean teruggeeft.

print 1980 in rain_percent. print '1980' in rain_percent. # afdrukken. Klopt. Niet waar. 

Keer de voorwaarde om (d.w.z. zorg ervoor dat de sleutel niet aanwezig is in het Python-woordenboek) met behulp van het formulier sleutel niet in dct. Dit komt overeen met de standaard python-negatie niet sleutel in dct.

print 1980 niet in rain_percent. print 1985 niet in rain_percent. # afdrukken. Niet waar. Klopt. 

Elementen wijzigen

Wijzig de waarde door toe te wijzen aan de vereiste sleutel.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} gebruikers ['leeftijd'] = 29. print gebruikers. # afdrukken. {'lastname': 'Smith', 'age': 29, 'firstname': 'John'}

Gebruik dezelfde syntaxis om een ​​nieuwe toewijzing aan het Python-woordenboek toe te voegen.

gebruikers ['dob'] = '15 -sep-1971 ' print gebruikers. # afdrukken. {'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ': 29,' firstname ':' John '}

Werk meerdere elementen van een woordenboek in één keer bij met de bijwerken() methode.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.update ({'age': 29, 'dob': '15 -sep-1971 '}) print gebruikers. # afdrukken. {'dob': '15 -sep-1971 ',' lastname ':' Smith ',' age ': 29,' firstname ':' John '}

Stel een standaardwaarde in voor een sleutel met standaard instellen(). Deze methode stelt de waarde voor de sleutel in als de toewijzing niet bestaat. Het geeft de huidige waarde terug.

# verandert de huidige waarde niet. print users.setdefault ('voornaam', 'Jane') # afdrukken. John # stelt waarde in. print users.setdefault ('stad', 'NY') # afdrukken. NY # Eindwaarde. print gebruikers. # afdrukken. {'lastname': 'Smith', 'age': 27, 'firstname': 'John', 'city': 'NY'}

Elementen verwijderen

Verwijder toewijzingen in het woordenboek met behulp van de del operator. Deze operator retourneert niets.

Je zult een KeyError als de sleutel niet bestaat in het woordenboek.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} del gebruikers ['leeftijd'] print gebruikers. # afdrukken. {'lastname': 'Smith', 'firstname': 'John'}

Gebruik de knal() methode in plaats, wanneer u de verwijderde waarde terug wilt.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.pop ('leeftijd') print gebruikers. # afdrukken. 27. {'lastname': 'Smith', 'firstname': 'John'}

Wat als u een sleutel wilt verwijderen als deze bestaat, zonder een fout te veroorzaken als dat niet het geval is? Je kunt gebruiken knal() en specificeer Geen voor het tweede argument als volgt:

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.pop ('foo', Geen) print gebruikers. # afdrukken. {'lastname': 'Smith', 'age': 27, 'firstname': 'John'}

En hier is een one-liner om een ​​aantal sleutels uit een woordenboek te verwijderen zonder een fout te veroorzaken bij niet-bestaande sleutels.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27, 'dob': '15 -sep-1971 '} kaart (lambda x: users.pop (x, None), ['age', 'foo', 'dob']) print gebruikers.

Wilt u alle sleutels uit een woordenboek verwijderen? Gebruik de Doorzichtig() methode.

users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} users.clear () print gebruikers. # afdrukken. {}

Looping met Python-woordenboeken

Python biedt veel methoden voor looping Hoe do-while-lussen werken bij computerprogrammeringLussen zijn een van de eerste besturingstypen die u tijdens het programmeren leert. U weet waarschijnlijk van while en for loops, maar wat bereikt een do-while-lus? Lees verder over de vermeldingen van een woordenboek. Kies er een die bij u past.

Looping Over Keys

  • De eenvoudigste methode voor het achter elkaar verwerken van sleutels (en mogelijk waarden) maakt gebruik van een lus in de vorm:
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} voor k in gebruikers: print k, '=>', gebruikers [k] # afdrukken. lastname => Smith. leeftijd => 27. firstname => John.
  • Met behulp van de methode iterkeys () werkt precies hetzelfde als hierboven. Maak een keuze welke vorm je wilt gebruiken.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} voor k in gebruikers.iterkeys (): print k, '=>', gebruikers [k] # afdrukken. lastname => Smith. leeftijd => 27. firstname => John.
  • Een derde methode om sleutels in een lus op te halen en te verwerken, is het gebruik van de ingebouwde functie iter ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} voor k in iter (gebruikers): print k, '=>', gebruikers [k] # afdrukken. lastname => Smith. leeftijd => 27. firstname => John.
  • Gebruik de als u de index van de sleutel die wordt verwerkt nodig heeft opsommen () ingebouwde functie zoals afgebeeld.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} voor index, toets enumerate (gebruikers) in: print index, key, '=>', gebruikers [k] # afdrukken. 0 achternaam => John. 1 leeftijd => John. 2 voornaam => John.

Looping over sleutel / waarde-paren

  • Gebruik wanneer u elk sleutel / waarde-paar met één gesprek wilt ophalen iteritems ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} voor k, v in gebruikers .iteritems (): print k, '=>', v. # afdrukken. lastname => Smith. leeftijd => 27. firstname => John.

Herhalen over waarden

  • De methode itervalues ​​() kan worden gebruikt om alle waarden in het woordenboek te herhalen. Hoewel deze methode lijkt op een lus met waarden (), het is efficiënter omdat het niet alle waarden in één keer ophaalt.
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} voor waarde in gebruikers. itervalues ​​(): afdrukwaarde. # afdrukken. Smith. 27. John.

Arrays extraheren

De volgende methoden beschrijven het extraheren van verschillende Python-woordenboekinformatie in een matrixvorm. De resulterende array kan worden doorgelust met normale python-constructies. Houd er echter rekening mee dat de geretourneerde array groot kan zijn, afhankelijk van de grootte van het woordenboek. Het kan dus meer zijn duur (qua geheugen) om deze arrays te verwerken dan met de bovenstaande iteratormethoden.

Een geval waarin het acceptabel is om met deze arrays te werken, is wanneer u items uit het woordenboek moet verwijderen omdat u ongewenste elementen tegenkomt. Werken met een iterator tijdens het wijzigen van het woordenboek kan een RuntimeError veroorzaken.

  • De methode artikelen () geeft een array van tupels met sleutelwaarden terug. U kunt deze sleutel / waarde-paren herhalen zoals weergegeven:
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} voor k, v in gebruikers. items (): print k, '=>', v. # afdrukken. lastname => Smith. leeftijd => 27. firstname => John.
  • Haal alle sleutels in het woordenboek op met behulp van de methode toetsen ().
    users = {'firstname': 'John', 'lastname': 'Smith', 'age': 27} print users.keys () # afdrukken. ['achternaam', 'leeftijd', 'voornaam']

    Gebruik de geretourneerde array om over de sleutels te lopen.

    voor k in gebruikers.keys (): print k, '=>', gebruikers [k] # afdrukken. lastname => Smith. leeftijd => 27. firstname => John.
  • Gebruik de methode op een vergelijkbare manier waarden () om alle waarden in het woordenboek op te halen.
    voor waarde in gebruikers. waarden (): afdrukwaarde. # afdrukken. Smith. 27. John. 

Hoe gebruik je Python-woordenboeken?

We hebben in dit artikel geprobeerd de meest voorkomende use-cases voor python-woordenboeken te behandelen. Zorg ervoor dat je al onze bekijkt andere Python-artikelen 10 basis Python-voorbeelden die u zullen helpen snel te lerenDit artikel met standaard python-voorbeelden is voor diegenen die al enige programmeerervaring hebben en gewoon zo snel mogelijk naar Python willen overstappen. Lees verder voor zelfs meer Python-tips 5 cursussen die je van Python Beginner naar Pro brengenDeze vijf cursussen leren je alles over programmeren in Python, een van de populairste talen die er momenteel is. Lees verder . Als u andere use-cases heeft waarvan u denkt dat ze moeten worden opgenomen, laat het ons dan weten in de onderstaande opmerkingen!

Afbeeldingscredits: viper345 / Shutterstock