Advertentie

Arrays en lijsten zijn enkele van de nuttigste datastructuren bij het programmeren - hoewel weinig mensen ze echt volledig gebruiken. Vandaag zal ik je de basis uitleggen, samen met enkele eenvoudige Python-voorbeelden.

Vereisten

Er is niet veel dat u van tevoren moet weten om deze concepten te leren. Een basiskennis van programmeerparadigma's en Python zal nuttig zijn, maar is niet vereist. Lees onze basis Python-voorbeelden 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 als je niet weet waar je moet beginnen. Als je denkt dat Python een nutteloze taal is, bekijk dan onze redenen waarom dat niet zo is 5 redenen waarom Python-programmering niet nutteloos isPython - Je houdt ervan of je haat het. Je zou zelfs van het ene uiteinde naar het andere kunnen slingeren als een slinger. Hoe dan ook, Python is een taal waar je moeilijk ambivalent over kunt zijn. Lees verder .

instagram viewer

Hoewel de volgende fundamentele ideeën op elke taal kunnen worden toegepast, zal ik de voorbeelden in Python demonstreren. Het is een makkelijke taal om te leren en biedt een uitstekend platform om te begrijpen wat er aan de hand is. Daarnaast tutorialspoint.com biedt een uitstekende online Python-tolk - u hoeft Python niet eens te installeren als u dat niet wilt (als u dat doet, kijk dan eens onze gids voor virtuele omgevingen Leer hoe u de Python virtuele omgeving gebruiktOf je nu een ervaren Python-ontwikkelaar bent of net begint, het leren van het opzetten van een virtuele omgeving is essentieel voor elk Python-project. Lees verder ).

Data structuren

Wat is een data structuur? Op het meest basale niveau is een gegevensstructuur een manier om gegevens efficiënt op te slaan. Het is gemakkelijk om in de war te raken omdat datastructuren dat niet zijn gegevenstypen. Gegevenstypen vertellen de compiler (of in het geval van Python de tolk) hoe de gegevens moeten worden gebruikt. Gegevensstructuren specificeren bewerkingen die kunnen worden uitgevoerd en implementeren vaak specifieke regels en voorschriften.

Je hebt er misschien al van gehoord lineair gegevenstypen (elementen zijn opeenvolgend):

  • Array
  • Matrix
  • Opzoektabel

Evenzo lijsten bevatten vaak regels en methoden om te regelen hoe ze werken. Enkele veelvoorkomende lijsten zijn:

  • Gekoppelde lijst
  • Dubbel gelinkte lijst
  • Array List of Dynamic Array

Er is een overvloed aan verschillende datastructuren. Je hebt er misschien wel van gehoord binaire bomen, grafieken, of hashes. Ik zal vandaag de basis bespreken, maar misschien wil je meer weten als je je eenmaal op je gemak voelt.

Array

Laten we bij het begin beginnen. Een array is een simpele verzameling van (gerelateerde) waarden. Deze waarden worden elementen genoemd. Ze kunnen meestal elk gegevenstype zijn, inclusief objecten of andere lijsten! Het belangrijkste voorbehoud bij arrays is dat alle gegevens hetzelfde moeten zijn - u kunt geen gemengde tekenreeksen en gehele getallen opslaan. U bijna moet altijd aangeven hoeveel elementen u wilt opslaan. Variabele maat of dynamische arrays bestaan, maar arrays met een vaste lengte zijn eenvoudiger om mee te beginnen.

Python maakt de zaken enigszins gecompliceerd. Het maakt het u heel gemakkelijk, maar het houdt niet altijd vast aan strikte definities van gegevensstructuren. De meeste objecten in Python zijn meestal lijsten, dus het maken van een array is eigenlijk meer werk. Hier is een startcode:

van array import array. getallen = matrix ('i', [2, 4, 6, 8]) nummers afdrukken [0]

De eerste regel importeert de matrix module - dat is vereist om met arrays te werken. De tweede regel maakt een nieuwe array met de naam nummers en initialiseert het met de waarden 2, 4, 6 en 8. Elk element krijgt een geheel getal waarde genaamd a sleutel of inhoudsopgave. De sleutels beginnen bij nul, dus cijfers [0] krijgt toegang tot het eerste element (2):

Python Arrays

U vraagt ​​zich misschien af ​​wat de 'ik' is gebruikt voor. Dit is een typecode die Python vertelt dat de array gehele getallen zal opslaan. Dit soort dingen is normaal gesproken niet nodig in Python (het wordt als "onpythonisch" beschouwd). De reden hiervoor is simpel. Arrays in Python zijn een zeer dunne wrapper op de onderliggende C-arrays van uw besturingssysteem. Dit betekent dat ze snel en stabiel zijn, maar dat ze niet altijd voldoen aan de Python-syntaxis.

In deze arrays kunt u geen gemengde typen opslaan. Stel dat u de string "makeuseof.com" wilt opslaan:

numbers = array ('i', [2, 4, 6, "makeuseof.com"])

Dit is niet toegestaan ​​en zal een uitzondering opleveren:

Python Arrays

U kunt als volgt alle elementen afdrukken:

nummers afdrukken
Python Arrays

Deze methode om toegang te krijgen tot arrayelementen werkt goed en is perfect voor de juiste taak. Waar het niet goed voor is, is toegang krijgen tot de hele array. Programmeurs zijn van nature lui, dus ik zal graag meer, betere code schrijven, als dit betekent dat ik het onderhoud eenvoudiger kan maken en het kopiëren en plakken kan verminderen.

Elke programmeertaal zal een soort lus implementeren, die perfect is om iteraties (looping) over lijstelementen uit te voeren. De meest voorkomende lussen zijn terwijl en voor. Python maakt het nog eenvoudiger door een voor in lus:

voor nummer in cijfers: nummer afdrukken

Merk op hoe u geen toegang tot elementen hoefde te krijgen met hun sleutel. Dit is een veel betere manier om met een array te werken. Een alternatieve manier om een ​​lijst te herhalen is met een voor lus:

voor i binnen bereik (len (nummers)): nummers afdrukken [i]

Dit doet precies hetzelfde als in het vorige voorbeeld, hoewel je het aantal elementen in de array moest specificeren (len (auto's)), samen met passeren ik als de sleutel tot de array. Dit is bijna precies de code die voor in loops lopen. Deze manier biedt iets meer flexibiliteit en is iets sneller (hoewel voor in lussen zijn meer dan snel genoeg meerderheid van de tijd.)

Lijsten

Nu u weet hoe arrays werken, gaan we een lijst bekijken. Het kan soms verwarrend zijn, omdat mensen onderling verschillende terminologie en lijsten gebruiken zijn arrays... soort van.

Een lijst is een speciaal type array. Het grootste verschil is dat lijsten kunnen bevatten gemengd typen (onthoud dat arrays elementen van hetzelfde type moeten bevatten). Lijsten zijn heel gemakkelijk in Python:

cars = ['Ford', 'Austin', 'Lancia']

Merk op hoe u de. Niet hoeft te importeren matrix module?

Deze syntaxis declareert een lijst met de naam auto's. Binnen de vierkante haken wordt elk element van de lijst aangegeven. Elk element wordt gescheiden door een komma en aangezien elk element een string is, declareer je ze tussen aanhalingstekens. Python weet dat dit een object is, dus de afdrukken statement geeft de inhoud van de lijst weer:

print auto's
Python Arrays

Net als bij de array, kunt u lijstelementen herhalen over het gebruik van lussen:

voor auto in auto: auto printen
Python Arrays

De echte feesttruc van lijsten is hun gemengde type. Ga je gang en voeg wat extra gegevens toe:

cars = ['Ford', 'Austin', 'Lancia', 1, 0,56]

Dit is geen probleem voor Python - het leverde zelfs geen uitzondering op:

Python Arrays

Het is gemakkelijk om nieuwe elementen aan een lijst toe te voegen (iets dat niet mogelijk is met arrays):

cars = ['Ford', 'Austin'] print auto's. cars.append ('Lancia') print auto's
Python Arrays

Je kunt ook twee lijsten samenvoegen tot één:

cars = ['Ford', 'Austin'] print auto's. other_cars = ['Lotus', 'Lancia'] cars.extend (other_cars) print auto's
Python Arrays

Het is net zo eenvoudig om elementen te verwijderen met de verwijderen syntaxis:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia'] print auto's. cars.remove ('Ford') print auto's
Python Arrays

Dat behandelt ongeveer de basis van lijsten en arrays in Python. Waarom zou u geen coderingsproject overwegen, zoals lezen en schrijven naar Google Spreadsheets Hoe te lezen en schrijven naar Google-bladen met PythonPython lijkt misschien vreemd en ongebruikelijk, maar het is gemakkelijk te leren en te gebruiken. In dit artikel laat ik u zien hoe u met Python leest en schrijft naar Google Spreadsheets. Lees verder , json-gegevens lezen 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 . Misschien kun je je nieuwe vaardigheden gebruiken om er een paar te maken aangepaste sneltoetsen Maak uw eigen aangepaste sneltoetsen met een ArduinoDe bescheiden Arduino kan veel dingen doen, maar wist je dat het een USB-toetsenbord kan emuleren? Met dit eenvoudige circuit kunt u lange sneltoetsen combineren in één aangepaste sneltoets. Lees verder . Ondanks dat het een andere programmeertaal is, blijven deze matrixprincipes van toepassing.

Heeft u iets nieuws geleerd? Wil je wat meer gecompliceerde inhoud zien? Laat ons je mening weten in de reacties hieronder!

Joe is afgestudeerd in computerwetenschappen aan de universiteit van Lincoln, VK. Hij is een professionele softwareontwikkelaar en als hij niet met drones vliegt of muziek schrijft, kan hij vaak foto's of video's maken.