bedre_om_kopiering_av_lister.py 1.2 KB
Newer Older
1
2
# Ignorer måten jeg skriver dette - det kalles 'list comprehension' og er utrolig effektivt.
# jeg kommer til å vise det i mer detalj senere, men dette lager en liste med tall fra 0 til 9.
Børge Haugset's avatar
Børge Haugset committed
3
4
5
6
7
liste1 = [x for x in range(10)]

# Denne vil nå skrive ut tallene mellom 0 og 9:
print(liste1)

Børge Haugset's avatar
Børge Haugset committed
8
print('\nbare bruk av = blir slik. Rimer, hihi')
Børge Haugset's avatar
Børge Haugset committed
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

# Nå setter vi nyliste lik liste
# Hvis vi endrer verdien på et element, da vil
# endringen vises på begge steder!
nyliste = liste1
liste1[0] = 'null'
print(liste1)
print(nyliste)

# Dette skjer fordi nyliste peker til det samme
# minneområdet. Nå har vi altså to variable som
# peker til det samme stedet. Dette er kult, men
# det kan også hende at vi ikke ønsker at det
# skal skje. Dette kan vi fikse på et par ulike
# måter

print('\nbruk av []+liste1 blir slik:')
liste1 = [x for x in range(10)]
nyliste = []+liste1 # Ser du forskjellen fra eksempelet over?
liste1[0] = 'null'
print('liste1:',liste1) # Nå er disse 
print('nyliste:',nyliste)# to ulike 

# Her har vi altså satt nyliste til å bli verdien av
# en tom liste PLUSS verdien av liste1. DA kopieres
# verdiene, og det er ikke lenger en peker til samme
35
# sted i minneområdet.