首页 > 解决方案 > 如何将一个列表转换为具有列表中元素对的新列表的最佳方法?

问题描述

我的问题是将列表转换[1,2,3,4,5][[1, 2], [2, 3], [3, 4], [4, 5]].

我解决了它:

a = [1,2,3,4,5]

result = [[e, a[idx + 1]] for idx, e in enumerate(a) if idx + 1 != len(a)]

最好的方法是什么?

标签: pythonpython-3.xlist

解决方案


您可以使用zip

L = [1,2,3,4,5]

res = list(zip(L, L[1:]))

这给出了一个元组列表。如果列表列表是严格要求,您可以使用map

res = list(map(list, zip(L, L[1:])))

print(res)

[[1, 2], [2, 3], [3, 4], [4, 5]]

有关您的问题的通用解决方案,请参阅滚动或滑动窗口迭代器


推荐阅读