首页 > 解决方案 > 有没有比三重嵌套 for 循环更好的方法来连接三个列表中的元素?

问题描述

我有三个这样的列表:

l1 = ['a', 'b', 'c']
l2 = ['d', 'e', 'f']
l3 = ['h', 'i', 'j']

现在,我要做的是将位于同一位置的所有元素组合在一行上,如下所示:

line_1: 'adh'
line_2: 'bei'
line_3: 'cfj'

有没有比三重嵌套 for 循环更好的方法来做到这一点?

for i in range(len(l1)):
    for j in range(len(l2)):
        for k in range(len(l3)):
            if i == j and j == k:
                print(l1[i] + l2[j] + l3[k])

基本上我试图让一些东西运行得比 O(n^3) 更快,因为我有大约 100,000 个项目我想这样做。

不确定 CSV 模块是否有办法做到这一点,但在组合每一行之后,将被写入 csv 文件。到目前为止,我还没有找到我想要的东西,并且发现社区中的某个人可能知道如何更好地解决这个问题。

哇感谢所有看过这个的人!有几个答案,他们都工作。我将为首先发布的人标记已回答的问题。再次感谢所有观看的人!我什至不知道 zip 功能。

标签: pythonlistcsv

解决方案


你可能想要这样的东西:

l1 = ['a', 'b', 'c']
l2 = ['d', 'e', 'f']
l3 = ['h', 'i', 'j']

for line in (''.join(t) for t in zip(l1, l2, l3)):
    print(line)

推荐阅读