2010-03-18 12 views

Respuesta

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

¿Funciona para Unicode? –

+1

Funciona en Unicodes. Si está preguntando si funciona en cadenas UTF-8, en su lugar debería estar preguntando cuándo debería decodificarlo en unicode. La respuesta, por supuesto, es tan pronto como entra. –

+0

Gracias, funciona como se esperaba. Tengo una lista de etiquetas en varios idiomas y voy a probar el pedido con varios traductores. –

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

sólo otra manera,

>>> 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

Es posible que desee crear dict después:

from itertools import groupby 

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