Python中如何合并/压缩多列表以生成指定格式的新列表?
解决多列表对应位置元素拼接的问题
嘿,这个需求很直观,我给你两种实用的Python实现方式,都是处理这类对应位置元素合并的常用技巧:
方法1:列表推导式 + zip + f-string(最易读)
这种方式代码简洁,可读性拉满,非常适合你的场景:
l1 = ["123", "456", "789"] l2 = ["car", "plane", "bike"] l3 = ["159", "200", "400"] l4 = [f"{item1} {item2} {item3}" for item1, item2, item3 in zip(l1, l2, l3)] print(l4) # 输出结果正好是你要的:["123 car 159", "456 plane 200", "789 bike 400"]
原理很简单:zip(l1, l2, l3)会把三个列表对应位置的元素打包成一个个元组(比如第一个元组是("123", "car", "159")),然后列表推导式遍历每个元组,用f-string把三个元素用空格拼接成字符串。
方法2:map + str.join(函数式风格)
如果你偏好函数式编程的写法,用map配合join也能快速搞定:
l4 = list(map(lambda tup: ' '.join(tup), zip(l1, l2, l3))) print(l4)
这里lambda函数接收每个打包后的元组,用' '.join()直接把元组里的元素用空格连接起来,最后转成列表就行。
小提醒:如果你的三个列表长度不一致,zip会自动以最短的列表为准截断结果。要是需要保留所有元素(短列表补默认值),可以用itertools.zip_longest,不过看你的例子三个列表长度相同,直接用zip就够啦。
内容的提问来源于stack exchange,提问作者mike
相关产品推荐
相关产品推荐

