Portál AbcLinuxu, 25. dubna 2024 15:35


Dotaz: Vysvětlení kódu v Pythonu

28.6.2015 23:36 Zacatecnik
Vysvětlení kódu v Pythonu
Přečteno: 526×
Odpovědět | Admin
Zdravím, pomůže mi prosím někdo objasnit (k mému pochopení) tento kód ? Jedná se mi pouze o řádek 2 a 3. Nechápu jak se může tento kód dopracovat k takovému výsledku. Děkuji
values = [5, 5, 1, 1, 2, 3, 4, 4, 5]
set    = set(values)
result = list(set)
print(result) #Output: [1, 2, 3, 4, 5]

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 28.6.2015 23:41 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vysvětlení kódu v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
V čem je problém? set udělá množinu (vyhodí duplicity + je tam rychlejší dotaz na existenci prvku) a když z ní zpátky děláš list, tak ji to uspořádá (nevím jestli to je schválně nebo side-effect použité hashovací funkce).
Já to s tou denacifikací Slovenska myslel vážně.
28.6.2015 23:49 Zacatecnik
Rozbalit Rozbalit vše Re: Vysvětlení kódu v Pythonu
Děkuji za vysvětlení, potřeboval jsem odstranit duplicity a našel jsem tenhle příklad, ale nerozuměl jsem tomu. Stejně mi to ale nefunguje :-(

UnboundLocalError: local variable 'set' referenced before assignment
Jendа avatar 29.6.2015 00:04 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vysvětlení kódu v Pythonu
Já když ten kód vezmu a přesně tak jak je ho vložím do Pythonu (2.7 i 3.4), tak to normálně funguje.
29.6.2015 00:16 Zacatecnik
Rozbalit Rozbalit vše Re: Vysvětlení kódu v Pythonu
Aha, tak mě taky, ale proč to nefunguje ve funkci ? Děkuji
Jendа avatar 29.6.2015 00:39 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vysvětlení kódu v Pythonu
Můj editor (vim) mě upozorní že set je rezervované slovo. Nazvi to jinak.
5.7.2015 20:25 Z55
Rozbalit Rozbalit vše Re: Vysvětlení kódu v Pythonu
Můj editor (vim) mě upozorní že set je rezervované slovo.
To ti tak věříme :-D
Jendа avatar 5.7.2015 22:58 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vysvětlení kódu v Pythonu
Proměnně jsou normálně bílé a v tom příkladu to krásně kontrastuje - bílé values, azurové set a bílé result. Snadno ti tak dojde že je tam asi něco jinak.
29.6.2015 07:41 lofcek
Rozbalit Rozbalit vše Re: Vysvětlení kódu v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pisat to takto je hovadina. Set, alebo aj list su builtin typy, ale ty si mozes zmenit ich definiciu - aj ked zvycajne to nie je dobry napad. V pythone3 dokonca aj print je takze potom mozem pisat podobne blbosti:
import math

my_print = print
my_print("Hello, world");
my_print(3.14);

print = math.sin
x = print(math.pi / 2)
my_print(x)
Ako priklad na pochopenie je to snad dobre, ale pri praktickom pisanie nepouzitelne. A podobnu zvrhlost robi aj tvoje set = set(values)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.