fork download
  1. #!/usr/bin/env python3
  2. from itertools import groupby
  3. from operator import itemgetter
  4. from pprint import pprint
  5.  
  6. L = [(1, 11, u'a', u'b'),
  7. (1, 24, u'd', u'c'),
  8. (1, 44, u'e', u'f'),
  9. (2, 66, u'h', u'g'),
  10. (2, 24, u'i', u'j' ),
  11. (4, 5, u'l', u'k')]
  12. l2 = [12, 48, 99]
  13.  
  14. grouped = map(itemgetter(1), groupby(L, key=itemgetter(0)))
  15. L = [(new_value,) + item[1:]
  16. for group, new_value in zip(grouped, l2)
  17. for item in group]
  18. pprint(L)
  19.  
Success #stdin #stdout 0.03s 9040KB
stdin
Standard input is empty
stdout
[(12, 11, 'a', 'b'),
 (12, 24, 'd', 'c'),
 (12, 44, 'e', 'f'),
 (48, 66, 'h', 'g'),
 (48, 24, 'i', 'j'),
 (99, 5, 'l', 'k')]