[Tutor] sorting lists into sub lists based on a key

Kent Johnson kent37 at tds.net
Thu Jun 21 02:46:42 CEST 2007


Iyer wrote:
> if I have a list of lists, that goes like this: 
> [[0,['a','b']],[0,['c','d']],[3,['f','g']], [0,['a','b']],[0,['c','d']], 
> [3,['f1','f2']], [2,['zz','dd']]]
> 
> what could be the best way to reorder this such that the sublists with 
> the same first element go into their own sub-list ?
> 
> Does this seem to be the best way to do it ?
> 
> list1 = []
> 
> for key, items in groupby(data_list, key= itemgetter(0)):    
>     list1.append(list(items))

This looks good to me. You could use a list comprehension which is a bit 
more concise and idiomatic:
list1 = [ list(items) for key, items in groupby(data_list, key= 
itemgetter(0)) ]


I can't help thinking that perhaps you should be using dicts to hold 
your data, you seem to have key/value pairs, but without knowing more 
about the problem I can't tell.

Ken


More information about the Tutor mailing list