Python如何按位置合并元组列表与字符串列表为新的元组列表
Python双列表按位置合并实现方案
最优单行列表推导式写法
result = [elt + (val,) for elt, val in zip(list1, list2)]
代码说明
- 内置函数
zip()会同时遍历两个列表的对应位置元素,每次迭代分别取出list1中的二元组elt、list2中对应位置的字符串val - 由于Python元组是不可变类型,我们将
val包装为单元素元组(val,)后,通过+运算符与原二元组拼接,即可得到目标三元组 - 该写法依赖Python原生高效迭代实现,无额外第三方依赖,时间复杂度为O(n),空间复杂度为O(n),是当前场景下的最优实现
不等长列表兼容方案
如果两个列表长度可能不一致,且需要以较长列表的长度为准进行缺省填充,可以使用itertools.zip_longest实现:
from itertools import zip_longest # fillvalue参数可自定义缺省填充值,示例用空字符串填充 result = [elt + (val,) for elt, val in zip_longest(list1, list2, fillvalue='')]
内容的提问来源于stack exchange,提问作者Ceal Clem
相关产品推荐
相关产品推荐

