[mylist[2*n:2*n+2] for n in xrange(len(mylist)/2)]
Questa soluzione combina l'uso di list comprehension e affettare per estrarre le coppie in sequenza dalla lista originale, e costruire una lista delle fette.
In alternativa, [mylist[n:n+2] for n in xrange(0, len(mylist), 2)]
che è lo stesso ad eccezione di xrange
conteggi a due invece che a fette. Grazie a Steven Rumbalski per il suggerimento.
E ora qualcosa di completamente diverso: qui è una soluzione di (ab) utilizzando zip
e una funzione effimera invece di assegnazione intermedia:
>>> (lambda i: zip(i, i))(iter(mylist))
[(1, 2), (3, 4), (5, 6)]
Più complicato di quello che deve essere - basta passare 'xrange' per 2 e la maggior parte della matematica va via. –
Feedback incorporato. – wberry