Python lar programmerere lage objekter kalt lister for å lagre og hente fram flere elementer når påkalte . Disse objektene er svært nyttig , men måten at Python håndterer objekter og variabler skaper noen fallgruver at både nybegynnere og middels programmerere bør være klar over før de finner dataelementer i sine lister være mystisk overskrevet med andre data . Python Lister
Pythons liste objekt oppfører seg mer som Javas ArrayList objekt enn det gjør en vanlig array. Programmereren trenger ikke å erklære størrelsen på array når han skaper det, og Python tolk vil automatisk øke listen størrelse for å imøtekomme flere oppføringer som brukeren legger til . Python lister er også betydelig mer fleksibel enn andre arraylike datastrukturer ved at de kan holde ulike gjenstander og variable datatyper samtidig .
Python Objects
Som arrays på andre språk , kan programmerere velger å plassere elementer inne i en Python liste ved direkte tilordne dataene til en bestemt indeks nummer på listen . Han gjør dette med syntaksen " liste [ n ] = new - data " hvor " listen" er navnet på listen objekt, er " n" elementnummeret programmerer tilordner data til , og "nye - data "er dataene programmereren tildele til listen element . Hvis det er data i matrisen element , vil det bli overskrevet .
Class Lister
En måte som Python programmerere feilaktig overskriver hele lister , heller enn spesifikke komponenter , er når de erklærer en liste som en klasse , i stedet for en metode listen. Når Python tolk instantiates flere objekter fra en klasse erklæring , de er uavhengig funksjonelle, og endringer i variabler av en ikke vil påvirke variabler av en annen. Men når en programmerer erklærer en liste utenom noen metode , det er en klasse over . Denne listen vil være felles for hvert objekt tolken gjør fra klassen erklæringen , vil så endringer i denne listen fra ett objekt føre sine verdier for å endre på alle andre objekt.
Riktig Kopiering Lister
en vanlig feil for programmerere som kommer til Python fra en annen språk er å syntaksen " liste -copy = list- original" for å lage en kopi av " liste - original" såkalte " new - liste . " , i Python , men fører dette til både " liste - kopi " og " list- original" peker på de samme verdiene i minnet. Følgelig , når programmerer endrer elementverdier i " list- kopi ", vil han finne at hans endringer overskrev det opprinnelige innholdet i " list- original" også. Syntaksen " liste -copy = liste (liste - original) " vil kopiere dataene innholdet i "list -originalt " inn "-liste - kopi " uten endringer i én påvirke den andre .