Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



defaultdict s listem

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: defaultdict s listem

Autor: Tomix2010

23:09:05 20.05.2011

Díky, funguje to dobře,i když jsem čekal, že tahle změna program
krapet zrychlí, ale nestalo se.
Tříd se zatím bojím :)

Celej prográmek je tady:
https://ideone.com/vh8B6

Mělo by to být řešení téhle úlohy:
http://forum.zive.cz/viewtopic.php?f=922&t=1141384&st=0&sk=t&sd=a&start=0&all=1

Citovat příspěvek

 

Re: defaultdict s listem

Autor: mol

20:30:03 20.05.2011

[code]vysledky = collections.defaultdict(lambda: [0,0,0])[/code]

(Ale jestli chceš skutečnou radu, tak to nedělej a pro tu trojici napiš poctivou třídu, když se člověk po půl roce k takovému kódu vrátí tak je rád že místo [i][0] vidí [0].count .)

Citovat příspěvek

 

defaultdict s listem

Autor: Tomix2010

18:25:41 20.05.2011

Zdravím,
potřeboval bych poradit, jak nastartovat default dict
s tří-prvkovým listem coby hodnotou. ( [0,0,0])
Daří se mi vytvořit jen prázdnej list ([]).

Momentálně používám:
[code]
import collections
vysledky = collections.defaultdict(list) # tady bych potřeboval [0,0,0]
...
...
if c not in vysledky: # když neni c ve slovníku,
vysledky[c] = [1,a,b] # tah ho vytvoř
else:
vysledky[c][0] += 1 # když existuje inkrementuj výskyt c
[/code]

Nultý prvek počítá kolikrát se vyskytl výsledek c.

Potřeboval bych aby fungovalo rovnou:
vysledky[c] = [vysledky[c][0]+1,a,b]
bez prohledávání not in.

Nic jako vysledky = collections.defaultdict(list(0,0,0))
nebo vysledky = collections.defaultdict(list([0,0,0]))
nebo vysledky = collections.defaultdict([0,0,0])
nefunguje.

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: