Hoe arrays en lijsten werken in Python

Hoe arrays en lijsten werken in Python

Arrays en lijsten zijn enkele van de meest bruikbare datastructuren bij het programmeren - hoewel maar weinig mensen ze echt volledig benutten. Vandaag zal ik je de basis doornemen, samen met enkele eenvoudige Python-voorbeelden.





Vereisten

U hoeft niet veel van tevoren te weten om deze concepten te leren. Een basiskennis van programmeerparadigma's en Python zal nuttig zijn, maar is niet vereist. Lees onze basisvoorbeelden van Python 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.





Hoewel de volgende fundamentele ideeën op elke taal kunnen worden toegepast, zal ik de voorbeelden in Python demonstreren. Het is een gemakkelijke taal om te leren en biedt een uitstekend platform om te begrijpen wat er gaande is. Naast dit, tutorialspoint.com biedt een uitstekende online Python-interpreter - je hoeft Python niet eens te installeren als je dat niet wilt (als je dat wel doet, bekijk dan onze gids voor virtuele omgevingen).





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 interpreter) hoe de gegevens bedoeld zijn om te worden gebruikt. Gegevensstructuren specificeren bewerkingen die kunnen worden uitgevoerd en implementeren vaak specifieke regels en voorschriften.

Misschien heb je er wel eens van gehoord lineair datatypes (elementen zijn opeenvolgend):



  • Array
  • Matrix
  • Opzoektabel

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

  • Gelinkte lijst
  • Dubbel gelinkte lijst
  • Matrixlijst of dynamische matrix

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





Array

Laten we bij het begin beginnen. Een array is een eenvoudige verzameling van (gerelateerde) waarden. Deze waarden worden elementen genoemd. Ze kunnen meestal elk gewenst 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. Jij bijna moet u altijd aangeven hoeveel elementen u wilt opslaan. Variabele grootte of dynamische arrays bestaan, maar arrays met een vaste lengte zijn eenvoudiger om mee te beginnen.

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





from array import array
numbers = array('i', [2, 4, 6, 8])
print(numbers[0])

De eerste regel importeert de reeks 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 toets of inhoudsopgave . Sleutels beginnen bij nul , dus cijfers[0] krijgt toegang tot het eerste element ( 2 ):

Je vraagt ​​je misschien af ​​wat de 'l' is gebruikt voor. Dit is een typecode dat vertelt Python dat de array gehele getallen zal opslaan. Dit soort dingen zou normaal gesproken niet nodig zijn in Python (het zou als 'unpythonic' worden 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 niet altijd voldoen aan de Python-syntaxis.

beste manier om oude foto's te scannen

U kunt geen gemengde typen in deze arrays opslaan. Stel dat je de string 'makeuseof.com' wilt opslaan:

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

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

Zo kunt u alle elementen afdrukken:

print(numbers)

Deze methode om toegang te krijgen tot array-elementen werkt goed en is perfect voor de juiste taak. Waar het niet goed voor is, is toegang tot de hele array. Programmeurs zijn van nature lui, dus ik schrijf graag meer, betere code, als dat betekent dat ik het onderhoud gemakkelijker kan maken en de kopieer- en plakinspanningen kan verminderen.

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

for number in numbers:
print(number)

Merk op dat u geen toegang hoefde te krijgen tot elementen 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 a voor lus:

for i in range(len(numbers)):
print(numbers[i])

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

Lijsten

Nu u weet hoe arrays werken, gaan we eens kijken naar een lijst. Het kan soms verwarrend zijn, omdat mensen verschillende terminologie door elkaar gebruiken en lijsten 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 eenvoudig in Python:

Windows 10 register tweaks om de prestaties te verbeteren
cars = ['Ford', 'Austin', 'Lancia']

Merk op hoe u de . niet hoeft te importeren reeks module?

Deze syntaxis declareert een lijst met de naam auto's. Binnen de vierkante haken wordt elk element van de lijst gedeclareerd. Elk element wordt gescheiden door een komma en aangezien elk element een tekenreeks is, declareert u ze tussen aanhalingstekens. Python weet dat dit een object is, dus de afdrukken statement zal de inhoud van de lijst weergeven:

print(cars)

Net als bij de array, kunt u lijstelementen herhalen met behulp van lussen:

for car in cars:
print(car)

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 -- er is zelfs geen uitzondering gemaakt:

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

cars = ['Ford', 'Austin']
print(cars)
cars.append('Lancia')
print(cars)

U kunt ook twee lijsten samenvoegen tot één:

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

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

cars = ['Ford', 'Austin', 'Lotus', 'Lancia']
print(cars)
cars.remove('Ford')
print(cars)

Dat omvat de basisprincipes van lijsten en arrays in Python. Waarom zou u geen coderingsproject overwegen, zoals lezen en schrijven naar Google Spreadsheets, het lezen van json-gegevens. Misschien kun je je nieuwe vaardigheden gebruiken om er een paar te maken aangepaste sneltoetsen . Ondanks dat het een andere programmeertaal is, zijn deze arrayprincipes nog steeds van toepassing.

Deel Deel Tweeten E-mail 5 tips om uw VirtualBox Linux-machines een boost te geven

Ben je de slechte prestaties van virtuele machines beu? Dit is wat u moet doen om uw VirtualBox-prestaties te verbeteren.

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Programmeren
  • Python
Over de auteur Joe Coburn(136 gepubliceerde artikelen)

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, is hij vaak te vinden om foto's te maken of video's te maken.

Meer van Joe Coburn

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren