[python] nechtene propojeni mnozin

2010-10-14 Thread Charlotte van Leeweneck
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,

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread Juda Kaleta
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/

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread Marek Polášek
-best-way-to-copy-a-list-in-python. S pozdravem Marek Polášek > Původní zpráva > Od: Charlotte van Leeweneck > Předmět: [python] nechtene propojeni mnozin > Datum: 14.10.2010 12:27:03 > > Dobry den, > > p

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread rajcze
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

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread Hynek Fabian
> 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

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread rajcze
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

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread rajcze
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 -

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread Pol, Leos
>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.eset.cz ___ Pyt

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread Hynek Fabian
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

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread Petr Přikryl
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

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread Visgean Skeloru
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

Re: [python] nechtene propojeni mnozin

2010-10-14 Thread Jakub Zíka
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

Re: [python] nechtene propojeni mnozin

2010-10-19 Thread MICHÁLEK Jan Mgr .
Ha, to mne vede k jednomu problému, kterej jsem řešil potřeboval jsem generátor, kterej by mě vracel postupně buňky pravidelné sítě (na pořadí mě nezáleží) Itertools použít nemůžu, používám py 2.5 V tom generátoru můžu použít buď toto [(a, b) for a in [1,2,3] for b in ['a','b']] #obslehnuto na

Re: [python] nechtene propojeni mnozin

2010-10-19 Thread Jirka Vejrazka
>  for i in [(a,b) for a in range(1,10,2) for b in range(5,20,5)]: Kdyz tady pouzijes na krajich kulate zavorky misto hranatych, tak se to nevyrobi cele v pameti, ale vznikne generator, ktery se pak da pouzit uplne stejne pro "for" cyklus: Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32