Pokud ty složitější operace nepotřebuješ, tak je lepší předchozí
řešení (rychlejší). Takhle zbytečně vytváříš iteraci z iterace a pak
ji teprve převádíš na list a přidáváš si tak krok navíc.
2010/10/14 Visgean Skeloru :
> Když už jste to nakously, nebylo by nejlepší použít:
>>
>> [i for i in xrang
Když už jste to nakously, nebylo by nejlepší použít:
> [i for i in xrange(8)]
>
? Umožňuje to i dělat složitější operace s iteracemi a tak je to asi
nejlepší...
2010/10/14 Petr Přikryl
>
> Hynek Fabian napsal...
> > Pol, Leos (Thursday 14 October 2010 12:56:13):
> > > >Fuj, takhle pisou ceck
Hynek Fabian napsal...
> Pol, Leos (Thursday 14 October 2010 12:56:13):
> > >Fuj, takhle pisou ceckari :-)
> > >R0 = list(range(8))
> >
> > Fuj, proc z listu znova delat list ;-)
>
> Protoze jsem se kdysi davno nekde docetl o planech sloucit range() a
> xrange(),
> a zvykl jsem si v ram
Pol, Leos (Thursday 14 October 2010 12:56:13):
> >Fuj, takhle pisou ceckari :-)
> >R0 = list(range(8))
>
> Fuj, proc z listu znova delat list ;-)
Protoze jsem se kdysi davno nekde docetl o planech sloucit range() a xrange(),
a zvykl jsem si v ramci dopredny kompatiblility explicitne si delat list
>Fuj, takhle pisou ceckari :-)
>R0 = list(range(8))
Fuj, proc z listu znova delat list ;-)
__ Informace od ESET NOD32 Antivirus, verze databaze 5530 (20101014)
__
Tuto zpravu proveril ESET NOD32 Antivirus.
http://www.e
fuj, takhle pisou lidi, co neumi python :) range(x) vraci list primo
:)) (okej, tenhle maly sarkasmus jsem si nemohl odpustit, doufam, ze
te neurazil:))
Jinak rikam - pokud jde o seznam immutable objektu, je melka kopie OK,
jen je dulezite vedet, jak se to zachova u pole mutable objektu, a
proc -
Tohle je samozrejme taky moznost, ale pokud bys mel v R0 mutable
objekty, tak by sis porad nepomohl - list(R0) totiz jen zkopiruje
reference, nevytvari nove objekty. Mutable/immutable je (pro mne) asi
ta nejhur vysvetlitelna cast pythonu pro "novacky" (protoze se to
chova na prvni pohled dost nekon
> R0=[]
> for x in range (8):
>R0.append(x)
Fuj, takhle pisou ceckari :-)
R0 = list(range(8))
> R0work=R0
R0Work = R0[:]
Udela melkou kopii - rez od zacatku do konce.
Slovnik ma metodu copy()
(Na hluboke kopirovani je modul "copy")
___
Python maili
Problem je v tom, ze seznam (list) je neco, cemu se v pythonu rika
"Mutable" - tj. menitelny objekt.
V praxi to znamena, ze pokud si vytvoris promennou R0 a priradis ji
prazdny seznam, tak ve skutecnosti _nastavujes ukazatel R0 na misto
pameti, kde se nachazi ten seznam_. Potom kdyz do toho seznam
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-bes
V Pythonu se nepracuje s proměnnými jako takovými, ale pouze referencemi na
objekt. Proto se přiřazením
R0work = R0
pouze změní reference na jeden a tentýž objekt. Pro naklonování, vytvoření
nového objektu, je potřeba zavolat něco takovéhoto:
R0work = list(R0)
S pozdravem,
Juda Kaleta
2010/10/
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,
12 matches
Mail list logo