[python] nechtene propojeni mnozin

Marek Polášek MarekPolasek na email.cz
Čtvrtek Říjen 14 12:41:21 CEST 2010


Zdravím,
problém je v tom, že pokud provedete R0work = R0, tak se nevytvoří kopie R0, ale pouze se zkopíruje reference na R0. Proto změna provedená nad  jedním seznamem se projeví i u druhého. 
Jak provést kopii seznamu lze najít třeba na http://stackoverflow.com/questions/184643/what-is-the-best-way-to-copy-a-list-in-python.

S pozdravem
Marek Polášek

> ------------ Původní zpráva ------------
> Od: Charlotte van Leeweneck <vanleeweneck.charlotte na gmail.com>
> Předmět: [python] nechtene propojeni mnozin
> Datum: 14.10.2010 12:27:03
> ----------------------------------------
> Dobry den,
> 
> potrebovala bych pomoci s nasledujicim problemem.
> 
> R0=[]
> for x in range (8):
>    R0.append(x)
> R0work=R0
> R0work[-1]=0
> 
> print(R0)
> print (R0work)
> 
> 
> Cílem bylo, aby mi to nahradilo posledni prvek v mnozine R0work prvkem 0,
> ale mozinu R0 nechalo nedotcenou
> tj. pozadovaný vysledek R0=[0, 1, 2, 3, 4, 5, 6, 7], R0work=[0, 1, 2, 3, 4,
> 5, 6, 0]
> Bohuzel to tak nefunguje a nahrazuje posledni prvek v obou mnozinach. Kde
> delam chybu?
> 
> 
> Dekuji za odpoved.
> Sarka
> 
> 
> 


Další informace o konferenci Python