如何从 python 中的偶数长度列表创建 "list of pairs"?

How to create "list of pairs" from an even-length list in python?

我有一个这样的列表,其中包含偶数个元素:

straight_list = [1, 2, 3, 4, 5, 6]

此列表中有六个项目。我想将它们分成 三对 ,像这样:

paired_list = [(1, 2), (3, 4), (5, 6)]

最好的方法是什么?更一般地说,给定一个包含 2*n 项的列表,创建 n 对列表的最佳方法是什么?我想出了以下内容:

straight_list = [1, 2, 3, 4, 5, 6]
paired_list = []

for i in range(len(straight_list)//2):
    j = i*2
    pair = (straight_list[j], straight_list[j+1])
    paired_list.append(pair)
    
print(paired_list)

# [(1, 2), (3, 4), (5, 6)]

我也可以这样弄,虽然绕口令:

[tuple(x) for x in list(np.array(straight_list).reshape(len(straight_list)//2,2))]
# [(1, 2), (3, 4), (5, 6)]

是否有更优雅、更实用、and/or“Pythonic”的方式来创建这个配对列表?

(在某些方面,这几乎是这个问题的反面:"How to make a flat list out of a list of lists?"

简单的列表理解怎么样?

paired_list = [(straight_list[i], straight_list[i+1]) for i in range(0, len(straight_list), 2)]