1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| li = [('glopo', 'jim'), ('somera', 'zoe'),('jyty', 'rene'), ('aplo', 'jean'),
('jyty', 'jo'), ('turumic', 'paul'), ('jyty', 'herve'), ('jyty', 'alix'),
('sol', 'vincent'), ('somera', 'adele'), ('wey', 'linpiao')]
li.sort(key = lambda el: el[0])
print 'li =\n%r\n\n\nx %21s x+1 %14s li[x+1][0]==li[x][0]\n%s' % (li,' ',' ',72*'-')
for x in range(len(li)-1) :
print '\n%-2d %-8s %-12s %-2d %-8s %-13s %r'\
% (x,li[x][0],li[x][1],x+1,li[x+1][0],li[x+1][1],li[x+1][0]==li[x][0])
if li[x+1][0]==li[x][0]:
debut,fin = x,x
print 'debut,fin = %d , %d' % (debut,fin)
while li[x][0]==li[x+1][0]:
fin=x+1
x+=1
print 'fin,x = %d , %d \nli[%d:%d] :\n- avant rangement :\n %r'\
% (fin, x, debut, x, li[debut:x])
li[debut:x] = sorted(li[debut:x], key = lambda el: el[1])
print '- apres rangement :\n ' + repr(li[debut:x])
print '\nli = \n',li |