Форум сайта python.su
0
Здравствуйте все!
Такая задачка, есть список с вложенными списками
data.append([12121, [['dog2', 342],['dog4', 254],['dog1', 56436]]]) data.append([23423, [['dog10', 452],['dog8', 4445],['dog6', 66]]])
12121, [['dog1', 56436],['dog2', 342],['dog4', 254]] 23423, [['dog6', 66],['dog8', 4445],['dog10', 452]]
Отредактировано Dobrodel (Окт. 24, 2014 18:44:26)
Офлайн
9
>>> data = [12121, [['dog2', 342],['dog4', 254],['dog1', 56436]]] >>> data[1].sort() >>> data [12121, [['dog1', 56436], ['dog2', 342], ['dog4', 254]]]
Офлайн
0
Благодарю за ответ. С одним элементом в списке понятно.
Вопрос в том, что не могу сообразить как отсортировать весь список со множеством вложенных элементов.
Видимо по ключу каким то образом, однако не могу понять как именно?
Отредактировано Dobrodel (Окт. 24, 2014 18:45:18)
Офлайн
103
data = [] data.append([12121, [['dog2', 342],['dog4', 254],['dog1', 56436]]]) data.append([23423, [['dog10', 452],['dog8', 4445],['dog6', 66]]]) map(lambda x: x[1].sort(), data) print data # [[12121, [['dog1', 56436], ['dog2', 342], ['dog4', 254]]], [23423, [['dog10', 452], ['dog6', 66], ['dog8', 4445]]]]
Офлайн
857
>>> import re >>> >>> lst = [['dog10', 452],['dog8', 4445],['dog6', 66]] >>> lst.sort(key=lambda i: int(re.search(r'\d+$', i[0]).group())) >>> lst [['dog6', 66], ['dog8', 4445], ['dog10', 452]] >>>
Офлайн
0
Благодарю, то что нужно.
Мне подходят оба варианта))
Отредактировано Dobrodel (Окт. 25, 2014 09:35:56)
Офлайн