やりたいこと
Ruby での
(1...10).each_cons(2).to_a
#=> [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9]]
を Python でやりたい。
方法 1
import itertools
numbers = range(1, 10)
it1, it2 = itertools.tee(numbers)
next(it2)
list(zip(it1, it2))
# [(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
方法 2
list や range など subscriptable (添え字にアクセス可能) なオブジェクトならこの方法がシンプルでした。(@shiracamus さん、ありがとうございます )
numbers = range(1, 10)
list(zip(numbers, numbers[1:]))
# [(1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]