将2个元组合并为一个元组列表

时间:2019-12-04 11:41:09

标签: python-3.x

我有一个元组列表

a = [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12)]

每个元组包含三个元素。列表中的元组数可以是奇数或偶数。我想要的结果是

偶数

b = [((1, 2, 3), (4, 5, 6)), ((7, 8, 9), (10, 11, 12))]

奇数

a = [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12), (13, 14, 15)]

b = [((1, 2, 3), (4, 5, 6)), ((7, 8, 9), (10, 11, 12)), ((13, 14, 15))] 

那是我想要将两个元组合并为一个。

1 个答案:

答案 0 :(得分:1)

您可以尝试zip

result = list(zip(a[::2], a[1::2]))
# For odd number of elements
if len(result)%2:
    result.append(a[-1])
print(result)

输出:

[((1, 2, 3), (4, 5, 6)), ((7, 8, 9), (10, 11, 12))]

如果初始列表中元素的数量为奇数,则最后一个元素将被忽略