2010-03-18 7 views

risposta

12
groupby(sorted(tags), key=operator.itemgetter(0)) 
+0

Funziona per Unicode? –

+1

Funziona su unicodes. Se stai chiedendo se funziona con le stringhe UTF-8, dovresti invece chiedere quando dovresti decodificarlo su unicode. La risposta, ovviamente, è appena disponibile. –

+0

Grazie, funziona come previsto. Ho una lista di tag in più lingue e testerò l'ordine con vari traduttori. –

5
>>> for i, j in itertools.groupby(tags, key=lambda x: x[0]): 
    print(i, list(j)) 


a ['apples', 'apricots'] 
o ['oranges'] 
p ['pears', 'peaches'] 
0

solo un altro modo,

>>> from collections import defaultdict 
>>> t=defaultdict(list) 
>>> for items in tags: 
...  t[items[0]].append(items) 
... 
>>> t 
defaultdict(<type 'list'>, {'a': ['apples', 'apricots'], 'p': ['pears', 'peaches'], 'o': ['oranges']}) 
9

Si potrebbe desiderare di creare dict seguito:

from itertools import groupby 

d = {k: list(v) for k, v in groupby(tags, key=lambda x: x[0])} 
Problemi correlati