我的问题是将列表[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)]
最好的方法是什么?
答案 0 :(得分:2)
您可以使用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]]
有关问题的通用解决方案,请参见Rolling or sliding window iterator。
答案 1 :(得分:1)
不知道“最佳”方法,但这是另一种方法。
d = [1,2,3,4,5]
results = [[d[i], d[i+1]] for i in range(len(d) - 1)]
print(results)
# OUTPUT
# [[1, 2], [2, 3], [3, 4], [4, 5]]