Annons

Matriser och listor är några av de mest användbara datastrukturerna i programmering - även om få människor verkligen använder dem till sin fulla potential. Idag kommer jag att prata dig igenom grunderna, tillsammans med några enkla Python-exempel.

förutsättningar

Det är inte mycket du behöver veta i förväg för att lära dig dessa koncept. En grundläggande kunskap om programmeringsparadigmer och Python kommer att vara till hjälp, men det krävs inte. Läs vår grundläggande Python-exempel 10 grundläggande Python-exempel som hjälper dig att lära dig snabbtDenna artikel med grundläggande exempel på python är för dem som redan har viss programmeringserfaring och helt enkelt vill övergå till Python så snabbt som möjligt. Läs mer om du inte vet var du ska börja. Om du tycker att Python är ett meningslöst språk, kolla in vårt skäl till varför det inte är det 5 skäl till varför Python-programmering inte är användbarPython - Du älskar antingen eller så hatar du det. Du kanske till och med svänger från ena änden till den andra som en pendel. Hur som helst är Python ett språk som det är svårt att vara ambivalent med.

instagram viewer
Läs mer .

Medan följande grundläggande idéer kan tillämpas på vilket språk som helst, kommer jag att demonstrera exemplen i Python. Det är ett enkelt språk att lära sig och ger en utmärkt plattform för att förstå vad som händer. Utöver detta, tutorialspoint.com ger en utmärkt Python-tolk online - du behöver inte ens installera Python om du inte vill (om du gör det, kolla in vår guide till virtuella miljöer Lär dig hur du använder den virtuella Python-miljönOavsett om du är en erfaren Python-utvecklare, eller om du bara är igång, är det viktigt att lära sig att ställa in en virtuell miljö för alla Python-projekt. Läs mer ).

Data struktur

Vad är en datastruktur? På sin mest grundläggande nivå är en datastruktur ett sätt att lagra data effektivt. Det är lätt att bli förvirrad eftersom datastrukturer inte är det datatyper. Datatyper berättar kompilatorn (eller i Pythons fall tolkaren) hur uppgifterna är avsedda att användas. Datastrukturer anger operationer som kan utföras och implementerar ofta specifika regler och förordningar.

Du kanske har hört talas om några linjär datatyper (element är sekventiella):

  • Array
  • Matris
  • Uppslagstabell

Liknande, listor innehåller ofta regler och metoder för att reglera hur de fungerar. Några vanliga listor är:

  • Länkad lista
  • Dubbel länkad lista
  • Array List eller Dynamic Array

Det finns en mängd olika datastrukturer. Du kanske har hört talas om binära träd, grafer, eller hashes. Jag diskuterar grunderna idag, men du kanske vill lära dig mer när du är bekväm.

Array

Låt oss börja i början. En matris är en enkel samling av (relaterade) värden. Dessa värden kallas element. De kan vanligtvis vara vilken datatyp du vill, inklusive objekt eller andra listor! Det viktigaste varumärket med matriser är att all data måste vara densamma - du kan inte lagra blandade strängar och heltal. Du nästan måste alltid ange hur många element du vill lagra. Variabel storlek eller dynamiska matriser finns, men matriser med fast längd är enklare att börja med.

Python komplicerar saker något. Det gör saker väldigt lätt för dig, men det håller inte alltid på strikta definitioner av datastrukturer. De flesta objekt i Python är vanligtvis listor, så att skapa en matris är faktiskt mer arbete. Här är någon startkod:

från arrayimportarray. antal = matris ('i', [2, 4, 6, 8]) tryck nummer [0]

Den första raden importerar array modul - det krävs för att arbeta med matriser. Den andra raden skapar en ny grupp som heter tal och initialiserar det med värdena 2, 4, 6 och 8. Varje element tilldelas en heltal värde som kallas a nyckel eller index. Nycklarna börjar kl noll, så siffror [0] kommer åt det första elementet (2):

Python Arrays

Du undrar kanske vad ’I’ används till. Det här är en typecode som säger till Python att matrisen kommer att lagra heltal. Den här typen av saker skulle normalt inte behövas i Python (det skulle betraktas som ”opytoniskt”). Anledningen till detta är enkel. Arrays i Python är ett mycket tunt omslag på de underliggande C-matriserna i ditt operativsystem. Det betyder att de är snabba och stabila, men de kanske inte alltid följer Python-syntaxen.

Du kan inte lagra blandade typer i dessa matriser. Säg att du ville lagra strängen “makeuseof.com”:

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

Detta kommer inte att tillåtas och kommer att kasta ett undantag:

Python Arrays

Så här kan du skriva ut alla element:

skriva ut nummer
Python Arrays

Denna metod för att få tillgång till arrayelement fungerar bra och den är perfekt för rätt uppgift. Vad det inte är bra för är att komma åt hela matrisen. Programmerare är naturligtvis lata, så jag skriver gärna mer, bättre kod, om det betyder att jag kan underhålla enklare och minska kopierings- och klistrainsatser.

Varje programmeringsspråk kommer att implementera en slinga av något slag, som är perfekta för att iterera (loopa) över listelement. De vanligaste slingorna är medan och för. Python gör sakerna ännu enklare genom att tillhandahålla en för i slinga:

för nummer i siffror: trycknummer

Lägg märke till hur du inte behövde komma åt element med deras nyckel. Detta är ett mycket bättre sätt att arbeta med en matris. Ett alternativt sätt att iterera över en lista är med en för slinga:

för i inom räckvidd (len (siffror)): skriv ut siffror [i]

Detta gör exakt samma sak som föregående exempel, även om du har tvingat ange antalet element i matrisen (len (bilar)), tillsammans med passering jag som nyckeln till matrisen. Det här är nästan exakt den koden som för i öglor kör. Detta sätt ger lite mer flexibilitet och är något snabbare (även om för i slingor är mer än snabb nog majoritet av tiden.)

listor

Nu när du vet hur matriser fungerar, låt oss titta på en lista. Det kan vara förvirrande ibland eftersom människor använder olika terminologier omväxlande och listar är matriser... typ av.

En lista är en speciell typ av matris. Den största skillnaden är att listor kan innehålla blandad typer (kom ihåg att matriser måste innehålla element av samma typ). Listor är mycket enkla i Python:

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

Lägg märke till hur du inte behöver importera array modul?

Denna syntax förklarar en lista som heter bilar. Inuti de fyrkantiga parenteserna deklareras varje element i listan. Varje element är separerat med komma, och eftersom varje element är en sträng, förklarar du dem i citat. Python vet att detta är ett objekt, så skriva ut uttalande kommer att mata ut innehållet i listan:

tryckta bilar
Python Arrays

Precis som med matrisen kan du upprepa listelement med hjälp av slingor:

för bil i bilar: tryckbil
Python Arrays

Det verkliga partistricket med listor är deras blandade typ. Gå vidare och lägg till lite extra data:

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

Detta är inget problem för Python - det höjde inte ens ett undantag:

Python Arrays

Det är lätt att lägga till nya element i en lista (något som inte är möjligt med matriser):

cars = ['Ford', 'Austin'] tryckta bilar. cars.append ( 'Lancia') tryckta bilar
Python Arrays

Du kan också slå samman två listor till en:

cars = ['Ford', 'Austin'] tryckta bilar. other_cars = ['Lotus', 'Lancia'] cars.extend (other_cars) tryckta bilar
Python Arrays

Det är lika enkelt att ta bort element med hjälp av avlägsna syntax:

bilar = ['Ford', 'Austin', 'Lotus', 'Lancia'] tryckta bilar. cars.remove ( 'Ford') tryckta bilar
Python Arrays

Det här behandlar grunderna i listor och matriser i Python. Varför inte överväga ett kodningsprojekt, t.ex. läsa och skriva till Google Sheets Hur man läser och skriver till Google Sheets With PythonPython kan verka konstigt och ovanligt, men det är lätt att lära sig och använda. I den här artikeln visar jag dig hur du läser och skriver till Google Sheets med Python. Läs mer , läser json data Hur man får Python och JavaScript att kommunicera med JSONIdag kommer jag att visa dig hur du använder JSON för att skicka data från JavaScript till Python. Jag täcker hur du konfigurerar en webbserver, tillsammans med all kod du behöver. Läs mer . Kanske kan du använda dina nya färdigheter för att göra några anpassade genvägsknappar Gör dina egna egna genvägsknappar med en ArduinoDen ödmjuka Arduino kan göra många saker, men visste du att den kan emulera ett USB-tangentbord? Du kan kombinera långa kortkommandon till en enda anpassad genvägsknapp med denna enkla krets. Läs mer . Trots att det är ett annat programmeringsspråk gäller dessa array-principer fortfarande.

Har du lärt dig något nytt? Vill du se lite mer komplicerat innehåll? Låt oss veta dina tankar i kommentarerna nedan!

Joe är en examen i datavetenskap från University of Lincoln, Storbritannien. Han är en professionell mjukvaruutvecklare, och när han inte flyger drönare eller skriver musik kan han ofta hitta foton eller producera videor.