Ik probeer van een array elke regel op te splitten in diverse gedeeltes, en deze in een nieuw array te zetten
(mensen van Advent of Code 2020 zullen dit vast wel herkennen
)
Daarvoor heb ik een volgend stukje code geschreven:
in mijn ogen doet ik dit :
ik split een string op in een lijst van strings ( for ii in Dochter_substrings : huidige_regeldochterkleuren.append(ii) )
en ik voeg die lijst toe aan als een nieuwe regel aan een lijst (ak_kleuren.append([huidige_regel_Moederkleur,huidige_regeldochterkleuren])
Echter In plaats van de waarde van huidige_regeldochterkleuren toe te voegen. voeg ik blijkbaar de variable zelf toe. Want op het moment dat ik die variable clear. clear ik ook alle waardes in zak_kleuren
Wat niet is wat ik verwachte dat er zou gebeuren,
Daarom dat ik een simpele test geschreven heb, om te checken dat ik niet gek was :
Levert [['1', ['a', 'b', 'c']], ['2', ['Dit', 'is', 'een lijst']]] op als resultaat.
Dus de waarde van de variable op het moment dat ik append aanroep is wat er in gezet is. en als ik achteraf de waarde van de variable verander blijft die in de array onverandered. Dat is ook zoals ik verwacht dat het werkte. Echter ik zie niet wat ik in het 2e code anders doe dan de eerste keer
waarom voeg ik 1 keer de variable toe, en de 2e keer de waarde van die variable ?
(mensen van Advent of Code 2020 zullen dit vast wel herkennen
Daarvoor heb ik een volgend stukje code geschreven:
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| zak_kleuren = [] huidige_regeldochterkleuren = [] for huidige_regel in AR_kleurenlijst : substring = huidige_regel.split(' contain ') huidige_regel_Moederkleur = substring[0][:-5] Dochter_substrings = substring[1].split(', ') huidige_regeldochterkleuren.clear() for ii in Dochter_substrings : huidige_regeldochterkleuren.append(ii) zak_kleuren.append([huidige_regel_Moederkleur,huidige_regeldochterkleuren]) print(zak_kleuren) |
in mijn ogen doet ik dit :
ik split een string op in een lijst van strings ( for ii in Dochter_substrings : huidige_regeldochterkleuren.append(ii) )
en ik voeg die lijst toe aan als een nieuwe regel aan een lijst (ak_kleuren.append([huidige_regel_Moederkleur,huidige_regeldochterkleuren])
Echter In plaats van de waarde van huidige_regeldochterkleuren toe te voegen. voeg ik blijkbaar de variable zelf toe. Want op het moment dat ik die variable clear. clear ik ook alle waardes in zak_kleuren
Wat niet is wat ik verwachte dat er zou gebeuren,
Daarom dat ik een simpele test geschreven heb, om te checken dat ik niet gek was :
Python:
1
2
3
4
5
6
7
8
9
10
11
| test_list = [] lijst = ['a','b','c'] char = '1' test_list.append([char,lijst]) lijst = ['Dit','is','een lijst'] char = '2' test_list.append([char,lijst]) print(test_list) |
Levert [['1', ['a', 'b', 'c']], ['2', ['Dit', 'is', 'een lijst']]] op als resultaat.
Dus de waarde van de variable op het moment dat ik append aanroep is wat er in gezet is. en als ik achteraf de waarde van de variable verander blijft die in de array onverandered. Dat is ook zoals ik verwacht dat het werkte. Echter ik zie niet wat ik in het 2e code anders doe dan de eerste keer
waarom voeg ik 1 keer de variable toe, en de 2e keer de waarde van die variable ?
Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d