Tohle je asi docela obvyklá struktura, jméno prvku a jeho paramatry.
dict = {
"time" : {"tabName":"cas", "dbName":"time", "width":40},
"address" : {"tabName":"adresa", "dbName":"address", "width":30},
"number" : {"tabName":"cislo", "dbName":"number", "width":35}
}
Slovník sám o sobě je v pythonu 2.x netříditelný.
Takže nedrží ani tvar v kterém jsme ho definovali.
print dict
>>>
{
'address': {'width': 30, 'tabName': 'adresa', 'dbName': 'address'},
'time' : {'width': 40, 'tabName': 'cas', 'dbName': 'time'}
'number' : {'width': 35, 'tabName': 'cislo', 'dbName': 'number'},
}
řešení spočívá v převodu na list metodou items() a třídění pomocí
lambda funkce
print sorted(dict.items(), key = lambda (k,v): (v["width"]))
>>>
[
('address', {'width': 30, 'tabName': 'adresa', 'dbName':'address'}),
('number' , {'width': 35, 'tabName': 'cislo', 'dbName':'number'}),
('time' , {'width': 40, 'tabName': 'cas', 'dbName':'time'})
]
paramater key je funkce, které se předávají prvky listu a vrací hodnotu pro abecední třízení.