[python] Pole

Jaroslav Pachola j_p na centrum.cz
Pátek Listopad 25 14:07:16 CET 2005


Ahoj,

Dne Friday 25 November 2005 14:02 slacker napsal(a):
> 
.: smilelover :. wrote:
> > Zdravim,
> > rad bych vedel, jak pouzivat v Pythonu uplne obycejna pole stylem:
> >
> > kwTable["s"]["x1"] = "e"
> > kwTable["s"]["x2"] = "p"
> >
> > hlasi mi, ze nemam promenou definovanou, ale at jsem to zkousel
> > jakkoliv,  nepodarilo se mi ji inicializovat.
> > Ne bo se da tenhle zapis nahradit akorat pomoci slovniku/seznamu?
> > Potrebuju timto stylem napsat prechodovou tabulku pro konecny automat.
>
> Na tohle asi bude nejlepsi pouzit slovnik napr. takto:
>
>   kwTable = dict()
>
>   kwTable[("s","x1")] = "e"
>   kwTable[("s","x2")] = "p"
>
>
>   					slacker

dalsi moznost je 

kwTable = {}
kwTable.setdefault("s", {})["x1"] = "e"
kwTable.setdefault("s", {})["x2"] = "p"

- to nevypada moc esteticky, ale zato to ma pravdepodobne pozadovane chovani. 
Treti moznost je udelat si pro kwTable vlastni tridu, v metode __getitem__() 
si zaridit, aby se v pripade potreby vytvoril prazdny slovnik no a pak uz 
muzes klidne psat.

kwTable = MyKwTable()
kwTable["s"]["x1"] = "e"
kwTable["s"]["x2"] = "p"

JP



Další informace o konferenci Python