Python拼接三个列表同位置元素有比三层for循环更优的方案吗?
性能优化方案
你原来的三层嵌套循环属于完全不必要的实现逻辑,时间复杂度高达O(n³),处理10万级数据必然卡顿。可以直接用Python内置的zip()函数实现同位置元素配对,时间复杂度直接降到O(n),单轮遍历即可完成所有操作:
l1 = ['a', 'b', 'c'] l2 = ['d', 'e', 'f'] l3 = ['h', 'i', 'j'] # 核心实现,同位置元素拼接 for val1, val2, val3 in zip(l1, l2, l3): print(val1 + val2 + val3)
如果你的三个列表长度不一致,需要以最长列表为准、缺失位置补默认值,可以改用itertools.zip_longest()实现。
CSV写入实现
完全可以通过csv模块实现写入,且内置了特殊字符转义逻辑,比手动写文件更稳定,10万条数据写入无性能压力,完整实现代码如下:
import csv l1 = ['a', 'b', 'c'] l2 = ['d', 'e', 'f'] l3 = ['h', 'i', 'j'] with open('result.csv', 'w', encoding='utf-8', newline='') as f: csv_writer = csv.writer(f) # 可选:写入表头,不需要可以删除这行 csv_writer.writerow(['line_info']) # 遍历写入,start=1是让行号从1开始计数 for line_num, (v1, v2, v3) in enumerate(zip(l1, l2, l3), start=1): # 按你需要的格式拼接内容 line_content = f"line_{line_num}: '{v1 + v2 + v3}'" csv_writer.writerow([line_content])
内容的提问来源于stack exchange,提问作者KoalaKey
相关产品推荐
相关产品推荐

