Hur Arrays och listor fungerar i Python

Hur Arrays och listor fungerar i Python / Programmering

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

förutsättningar

Det finns inte mycket du behöver veta innan tiden för att lära dig dessa begrepp. En grundläggande kunskap om programmeringsparadigmer och Python kommer att vara till hjälp, men det är inte nödvändigt. Läs våra grundläggande Python-exempel 10 Grundläggande Python-exempel som hjälper dig att lära dig snabbt 10 Grundläggande Python-exempel som hjälper dig att lära dig snabbt Denna artikel av grundläggande python-exempel är för dem som redan har någon programmeringserfarenhet och vill helt enkelt övergå till Python så fort som möjlig. 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åra skäl varför det inte är 5 Anledningar till att Python-programmering inte är oanvändbar 5 Anledningar till att Python-programmering inte är oanvändbar Python - Du älskar antingen det eller du hatar det. Du kan till och med svänga från ena änden till en annan som en pendel. Oavsett, Python är ett språk som är svårt att vara ambivalent. Läs mer .

Medan följande grundläggande idéer kan tillämpas på vilket språk som helst, demonstrerar jag 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 tillhandahåller tutorialspoint.com en utmärkt online Python tolk - 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 Python Virtual Miljö Lär dig hur du använder Pythons virtuella miljö Oavsett om du är en erfaren Python-utvecklare, eller om du bara har börjat, lär du dig att installera en virtuell miljö är viktigt 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 effektivt lagra data. Det är lätt att bli förvirrad eftersom datastrukturer inte är datatyper. Datatyper berättar för kompilatorn (eller i Pythons fall tolken) hur data ska användas. Datastrukturer anger operationer som kan utföras och implementerar ofta specifika regler och regler.

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
  • Dubbelt 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 kommer att diskutera grunderna idag, men du kanske vill veta mer när du är bekväm.

Array

Låt oss börja i början. En array är en enkel samling av (relaterade) värden. Dessa värden heter element. De kan vanligtvis vara vilken datatyp du gillar, inklusive objekt eller andra listor! Huvudsidan med arrays är att alla data måste vara desamma - 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 arrays existera, men fastlängdsarrayer är enklare att börja med.

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

från array import array numbers = array ('i', [2, 4, 6, 8]) skrivnummer [0]

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

Du kanske undrar vad 'jag' används till. Det här är en typecode som berättar om Python arrayen kommer att lagra heltal. Denna typ av sak skulle normalt inte behövas i Python (det skulle övervägas “unpythonic”). Anledningen till detta är enkelt. Arrayer i Python är en mycket tunn omslag på de underliggande C-arraysna i ditt operativsystem. Det betyder att de är snabba och stabila, men de kan inte alltid hålla sig till Python-syntaxen.

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

tal = array ('jag', [2, 4, 6, 'makeuseof.com'])

Detta kommer inte att tillåtas och kommer att göra ett undantag:

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

skriva ut siffror

Denna metod för att komma åt arrayelement fungerar bra, och den är perfekt för rätt uppgift. Vad det inte är bra för är att få tillgång till hela sortimentet. Programmerare är naturligtvis lat, så jag ska gärna skriva mer, bättre kod, om det betyder att jag kan göra underhållet enklare och minska kopia och klistra insats.

Varje programmeringsspråk kommer att implementera en slinga av något slag, vilket är perfekt för iterering (looping) över listelement. De vanligaste slingorna är medan och för. Python gör det ännu enklare genom att tillhandahålla en för in slinga:

för nummer i nummer: utskrift nummer

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 array. Ett alternativt sätt att iterera över en lista är med a för slinga:

för jag i intervallet (len (siffror)): utskrivningsnummer [i]

Detta gör exakt samma sak som föregående exempel, även om du måste specificera antalet element i arrayen (len (bilar)), tillsammans med passerar jag som nyckeln till matrisen. Det här är nästan exakt koden som för in loopar körs. På detta sätt ger lite mer flexibilitet, och är något snabbare (även om för in slingor är mer än tillräckligt snabba majoritet av tiden.)

listor

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

En lista är en speciell typ av array. Den största skillnaden är att listor kan innehålla blandad typer (kom ihåg att arrays måste innehålla delar av samma typ). Listor är väldigt lätta i Python:

bilar = ['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. Inne i torghakarna förklaras varje element i listan. Varje element är åtskilda av ett komma, och eftersom varje element är en sträng, deklarerar du dem inom citat. Python vet att det här är ett objekt, så skriva ut uttalandet kommer att ge innehållet i listan:

tryck bilar

Precis som med matrisen kan du repetera listelement över att använda slingor:

för bil i bilar: tryckbil

Den verkliga festtricket av listor är deras blandade typ. Fortsätt och lägg till några extra data:

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

Det här är inget problem för Python - det tog inte ens ett undantag:

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

bilar = ['Ford', 'Austin'] skriv ut bilar cars.append ('Lancia') bilar

Du kan också slå samman två listor i ett:

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

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

bilar = ['Ford', 'Austin', 'Lotus', 'Lancia'] skriv ut bilar .remove

Det handlar om grunden för listor och arrays i Python. Varför inte överväga ett kodprojekt, som att läsa och skriva till Google Sheets Hur man läser och skriver till Google Sheets med Python Hur man läser och skriver till Google Sheets Med Python Python kan tyckas 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äs json data Så här får du Python och JavaScript att kommunicera med JSON Hur får du Python och JavaScript att kommunicera med JSON Idag visar jag dig hur du använder JSON för att skicka data från JavaScript till Python. Jag kommer att täcka hur du installerar en webbserver, tillsammans med all kod du behöver. Läs mer . Kanske kan du sätta dina nya färdigheter för att använda några anpassade genvägsknappar. Gör dina egna anpassade genvägsknappar med en Arduino. Gör dina egna anpassade genvägsknappar med en Arduino. Den ödmjuka Arduino kan göra mycket saker, men visste du att det kan emulera en USB-tangentbord? Du kan kombinera långa tangentbordsgenvägar i en enda anpassad genvägsknapp, med denna enkla krets. Läs mer . Trots att det är ett annat programmeringsspråk, gäller dessa matrisprinciper fortfarande.

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

Utforska mer om: Programmering, Python.