А в чем проблема?
Для второго примера…
for name in rr2: print rr[name]["x"]
for name in rr2: print rr[name]["x"]
d = {'test1': {'x': 12, 'y': 20}, 'test2': {'x': 11, 'y': 22}, 'test3': {'x': 14, 'y': 22}} for k in sorted(d, key=lambda i: int(i[-1]), reverse=True): print(k, '->', d[k])
('test2', '->', {'y': 22, 'x': 11})
('test3', '->', {'y': 22, 'x': 14})
('test1', '->', {'y': 20, 'x': 12})>>> rr = {'test1': {'x': 12, 'y': 20}, 'test2': {'x': 11, 'y': 22}} >>> sorted(rr, key=lambda var: rr[var]['x']) ['test2', 'test1']
sorted(rr, key=lambda var: rr[var]['x'])
Fibio
если нужно просто получить доступ к определенныйм эл-там словаря в зависимости от ‘x’, то никаких for:>>> rr = {'test1': {'x': 12, 'y': 20}, 'test2': {'x': 11, 'y': 22}} >>> sorted(rr, key=lambda var: rr[var]['x']) ['test2', 'test1']
)4kptа я что-то подумал, что он хочет просто ключи словаря отсортировать
Сортировка ведь осуществляется по значению “х” :)
>>> d = {'test1': {'x': 12, 'y': 20}, 'test2': {'x': 11, 'y': 22}} >>> for k in sorted(d, key=lambda i: d[i]['x']): ... print(k, '->', d[k]) ... test2 -> {'x': 11, 'y': 22} test1 -> {'x': 12, 'y': 20} >>>