如何将普通列表与元组列表组合为指定结构的嵌套元组列表?
合并两个列表为指定格式的嵌套元组列表
给定两个列表:
list_a = [1, 4, 7] list_b = [(2, 3), (5, 6), (8, 9)]
需要将它们组合成如下形式的嵌套元组列表:
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
解法1:列表推导式(简洁高效)
利用zip()将两个列表的对应元素配对,再通过元组拼接生成目标格式:
result = [(a,) + b for a, b in zip(list_a, list_b)]
说明:(a,)把单个整数转为元组,这样才能和list_b中的二元组用+运算符拼接成三元组。
解法2:函数式风格(map + lambda)
如果偏好函数式编程写法,可使用map()配合匿名函数实现:
result = list(map(lambda x, y: (x,) + y, list_a, list_b))
map()会依次取两个列表的对应元素传入lambda函数处理,最后通过list()转换为列表类型。
解法3:基础循环写法(易理解)
对于需要清晰步骤的场景,普通for循环更直观:
result = [] for a, b in zip(list_a, list_b): result.append((a,) + b)
遍历配对后的元素,逐个拼接元组并添加到结果列表中。
内容的提问来源于stack exchange,提问作者Ian Low
相关产品推荐
相关产品推荐

