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í.