Мне кажется, что я трачу много времени на написание кода на Python, но недостаточно времени на создание Pythonic-кода. Недавно я столкнулся с забавной проблемой, которая, как я думал, может иметь легкое идиоматическое решение. Перефразируя оригинал, мне нужно было собрать каждую последовательную пару в списке. Например, учитывая список [1,2,3,4,5,6]
, я хотел вычислить [(1,2),(3,4),(5,6)]
.
В то время я придумал быстрое решение, похожее на переведенную Java. Повторяя вопрос, лучшее, что я мог сделать, это
l = [1,2,3,4,5,6]
[(l[2*x],l[2*x+1]) for x in range(len(l)/2)]
который имеет побочный эффект отбрасывания последнего числа в случае, когда длина не четная.
Есть ли более идиоматический подход, который мне не хватает, или это лучшее, что я собираюсь получить?