Python 列表操作:将元组的前驱和后继合并

Python list manipulation: combine predecessor and successor to tuples

假设我在 python 中有一个列表 l 定义为:

l = [x1, x2, x3,...,xn-1, xn],

有没有创建列表的简单方法l1:

l1 = [(x1, x2), (x2, x3),...,(xn-1, xn)]?

您可以使用列表推导式和 zip 列表的两个切片,它们偏移 1 个索引

>>> l = list(range(10))
>>> [(a,b) for a,b in zip(l[:-1], l[1:])]
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]