sort a Dict on alphabet by name in python -


have dict values(string)- name , number's (int).

i want dict sorted name.

have:

sorted(dictlist, key = lambda (k,v): v['name']) 

but - "string indices must intergers, not str".

def to_dict(lstdata) :     dct = dict();     dctdata in lstdata :         dct[dctdata['id']] = dctdata['name'];     return dct;   units = to_dict(db.getunits()); sorted(units, key = lambda k: units[k]['name']); 

if run- sorted(dctunits, key= lambda x:x[1])

i get: 'long' object unsubscriptable.

it sorting on wrong value. in (x=1l)

builtin sorted = <built-in function sorted>,  global dctunits = {1l: 'kg', 2l: 'day', 3l: 'week',       4l:  'month', 5l: 'g/l', 6l: 'ug/dl', 7l: 'ng/ml',       8l: 'year', 9l: 'min/day', 10l: 'cm', ...},  key undefined,  x = 1l    

x should 'kg'..

what i'm missing?

you doing lambda wrong, can either sort dictionaries keys, or values, or sort key value pairs.

(assuming dict dictionary)

by keys:

sorted(dict.keys(), key=lambda k: dict[k]['name']) # return list of keys, sorted value of 'name' 

by values:

sorted(dict.values(), key=lambda v: v['name']) # return list of values, sorted value of 'name' 

by pairs:

sorted(dict.items(), key=lambda (k, v): v['name']) # return list of key value pairs, sorted value of 'name' 

Comments

Popular posts from this blog

.htaccess - First slash is removed after domain when entering a webpage in the browser -

Automatically create pages in phpfox -

c# - Farseer ContactListener is not working -