J'ai l'impression de passer beaucoup de temps à l'écriture de code en Python, mais pas assez de temps à la création Pythonic code. Récemment je suis tombé sur un drôle de petit problème que je pensais peut-être facile, idiomatiques solution. En paraphrasant l'origine, j'avais besoin de collecter tous les séquentielle paire dans une liste. Par exemple, pour la liste [1,2,3,4,5,6]
, je voulais calculer [(1,2),(3,4),(5,6)]
.
Je suis venu avec une solution rapide à l'époque qui ressemblait traduit Java. Revenant à la question, le mieux que je pouvais faire était de
l = [1,2,3,4,5,6]
[(l[2*x],l[2*x+1]) for x in range(len(l)/2)]
ce qui a aussi pour effet de jeter le dernier numéro dans le cas où la durée n'est pas la même.
Est-il plus idiomatiques approche que je suis absent, ou est-ce la meilleure je vais obtenir?