Форум сайта python.su
63
k0st1an
А в чем проблема?
Для второго примера…
for name in rr2: print rr[name]["x"]
Офлайн
63
py.user.next
Что-то первый код не работает….
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})Офлайн
2
ну как бы новый отсортированный словарь вы не получите, так как значения словаря хранятся в неотсортированном порядке, если нужен новый отсортированный словарь юзайте http://docs.python.org/2/library/collections.html#collections.OrderedDict
если нужно просто получить доступ к определенныйм эл-там словаря в зависимости от ‘x’, то никаких for:
>>> rr = {'test1': {'x': 12, 'y': 20}, 'test2': {'x': 11, 'y': 22}} >>> sorted(rr, key=lambda var: rr[var]['x']) ['test2', 'test1']
Офлайн
63
sorted(rr, key=lambda var: rr[var]['x'])
Отредактировано 4kpt (Фев. 8, 2013 10:20:55)
Офлайн
0
Fibio
если нужно просто получить доступ к определенныйм эл-там словаря в зависимости от ‘x’, то никаких for:>>> rr = {'test1': {'x': 12, 'y': 20}, 'test2': {'x': 11, 'y': 22}} >>> sorted(rr, key=lambda var: rr[var]['x']) ['test2', 'test1']
)Офлайн
857
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} >>>
Офлайн
63
py.user.next
Я тоже у него пол дня допытывался, что он хочет…
Офлайн
А я уже зарекся давать ответы на нечетко сформулированные вопросы. Было уже не раз. Чето стараешься, а на 10й пост оказывается, что ТС хотел совсем не это. Формулируйте вопросы четко и сразу!!!
Офлайн
63
dimy44
В идеале это пост такого характера.
Дано то-то то-то.
Надо получить то-то то-то.
Пытался так-то и так-то.
ПОМОГИТЕ ПОЖАЛУЙСТА :)
Офлайн
абсолютно верно. Дано. Получить хочу то-то и то-то, нюансы такие-то и такие-то. Хсн, пусть даже не пытался, если задача интересная, ответ дадут. Иной раз лучше честно признаться, что ноль, чем иммитировать попытку решения (что элементарно вычисляется). Нечетко сформулированный вопрос- это неуважение к людям, которые отбросят свои дела, чтоб вам попытаться бескорыстно помочь. Все ИМХО.
Офлайн