Python:高效将列表元素与元组列表组合为新元组列表的实现方法
最高效的实现方法
嘿,这个需求用Python的内置工具就能轻松且高效地完成,完全不用写冗余的循环逻辑!
核心思路
我们需要把list_A和list_B对应位置的元素配对,然后将list_B里的每个二元组和list_A的单个元素合并成新的三元组。这里最关键的是利用内置的zip()函数(C实现,性能拉满)加上列表推导式(生成列表的高效方式)来完成。
具体代码实现
list_A = [1,2,3,4,5] list_B = [(10, 11), (20,21), (30,31), (40,41), (50,51)] # 一行搞定目标结果 result = [b + (a,) for a, b in zip(list_A, list_B)] print(result) # 输出: [(10, 11, 1), (20, 21, 2), (30, 31, 3), (40, 41, 4), (50, 51, 5)]
为什么这是最高效的?
zip()是Python底层用C实现的函数,比手动用enumerate索引遍历的速度快得多,它会直接把两个可迭代对象对应位置的元素打包成元组,没有额外的性能开销。- 列表推导式是Python中生成列表的最优方式之一,相比用
for循环加append()的写法,它的语法更简洁,执行效率也更高(同样是底层优化过的)。
额外说明
如果你的list_A和list_B长度不一致,zip()会自动以较短的那个列表的长度为准截断结果。如果需要保留所有元素(长度不足的用默认值填充),可以用itertools.zip_longest,不过在这个题目里两个列表长度相同,zip()就完全够用啦。
内容的提问来源于stack exchange,提问作者yjasrc
相关产品推荐
相关产品推荐

