Práce s ukazateli na prvky seznamu – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Práce s ukazateli na prvky seznamu – Python – Fórum – Programujte.comPráce s ukazateli na prvky seznamu – Python – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
14. 12. 2006   #1
-
0
-

Potřebuji poradit. Mým seznam a ukazatel na jeden z jeho prvků:

a = [1, 2, 3]

a1 = a[1]

a teď mi jde o to, že chci změnit hodnotu v proměnné tak, aby se změnila i v původním seznamu.
Když napšíu
a[1] = 4 #a = [1, 4, 3]
seznam se změní na [1, 4, 3], když však přiřadím
a1 = 5 #a = [1, 4, 3]
původní seznam se nezmění a proměnná a1 ztratí svoji "konektivitu" na původní seznam. Jak můžu měnit obsah původního seznamu pomocí toho ukazatele a1?

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
geon0
Grafoman
14. 12. 2006   #2
-
0
-

a1 nen? ukazetel. "ukazatel" je a[1]. V Pythonu se toti? o ukazatel?ch vůbec nemluv?. V?e jsou prom?nn?, kter? ovšem maj? trochu j?n? vlastnosti ne? zn?? z C, Pascal ... V?ce snad na http://www.py.cz/PastiJazykaPython .

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
14. 12. 2006   #3
-
0
-

To geon:Děkuju, už jsem to pochopil. Pokud zapíšu

a1 = a[1]
hodnota a[1] se do proměnné a1 zkopíruje a již v tuto chvíli žádná vazba neexistuje.
Ale! :)
Pokud uvažuji o situaci kdy pole bude seznam polí (namísto hodnot)
a = [[1], [2], [3]]

a1 = a[1]

pak již se a1 jako "ukazatel" chová. Jak v tomto případě lze řešit přiřazení do a1 tak, aby se měnil původní seznam?
Je takovýto zápis z hlediska profesionílního "Pythonéra" košér?
a1[:] = [4]
Zkusil jsem to a funguje to, ale nelze to zapsat lépe?

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
14. 12. 2006   #4
-
0
-

Ve skutečnosti jsou "ukazatele" všechny proměnné. Jen některé jsou měnné (seznamy, ...) a některé neměnné (čísla, řetězce,...). Měnné proměnné se tváří jako tvé "ukazatele". a1 se v tvém případě rovná seznamu [1], takže když ho chceš měnit, je nejlépe obyčejně pomocí indexů:
a1[0]=4

To tvoje jde taky, ale pokud by a1=[5,4,8], tak by ti vyšlo něco, co jsi asi nechtěl

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

Podobná vlákna

Práce seznamu — založil pouk

Plovoucí prvky — založil Tomáš

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý