sorted
Для сортировки списка можно использовать ф-ию sorted(), в качестве результата она возвращает отсортированный список. Если нужно отсортировать по конкретному параметру, то можно задать ключ sorted( [], key=...)
groupby из itertools
Ф-ия groupby группирует элементы в списки, например такой список "112331122" после группировки будет таким:
[1,[ 11] ],[2,[2] ], [3,[33] ], [1,[11] ], [2,[22] ]
[1,[1111] ], [2,[222] ], [3,[33] ]
# coding: utf-8
from itertools import groupby
d = [
[ 'Windows', 'os' ],
[ 'Linux', 'os' ],
[ 'Photoshop', 'soft' ],
[ 'Mac OS', 'os' ],
[ 'Calc', 'soft' ]
]
for g in groupby( sorted(d,key=lambda x:x[1]) ,key=lambda x:x[1]):
print g[0]
for i in g[1]:
print ' - ',i
os
- ['Windows', 'os']
- ['Linux', 'os']
- ['Mac OS', 'os']
soft
- ['Photoshop', 'soft']
- ['Calc', 'soft']