【问题标题】:Adding each item from one list to each item from another list to third list将一个列表中的每个项目添加到另一个列表中的每个项目到第三个列表
【发布时间】:2021-12-22 01:48:51
【问题描述】:

以下列表的图像:

A = [1,2,3,4]
B = ['A','B','C','D']
C = [10,11,12,13]
D = [100,200,300,400]

我应该得到以下结果: Z = ['1A10100', '2B11200', '3C12300', '4D13400']

我可以使用很多空数组来做到这一点,首先对 A 和 B 使用 for 循环,而不是使用这个新列表并为每个 i 附加 C,等等。

问题是,这能否以更智能的方式完成。在我的真实情况下,列表是 6?

【问题讨论】:

    标签: python arrays list


    【解决方案1】:

    您可以使用简单的列表推导:

    Z = [''.join(str(x) for x in l) for l in zip(A,B,C,D)]
    

    输出:['1A10100', '2B11200', '3C12300', '4D13400']

    如果您的列表已经有一个容器:

    lists = [A,B,C,D]
    [''.join(str(x) for x in l) for l in zip(*lists)]
    

    【讨论】:

      【解决方案2】:

      我们可以尝试使用列表推导:

      A = [1,2,3,4]
      B = ['A','B','C','D']
      C = [10,11,12,13]
      D = [100,200,300,400]
      
      nums = list(range(0, len(A)))
      Z = [str(A[i]) + B[i] + str(C[i]) + str(D[i]) for i in nums]
      print(Z)  # ['1A10100', '2B11200', '3C12300', '4D13400']
      

      【讨论】:

        【解决方案3】:

        如果每个列表的长度是固定的且长度相同,您可以简单地按索引循环,将它们连接起来,然后将它们一一推送到结果数组中。

        A = [1,2,3,4]
        B = ['A','B','C','D']
        C = [10,11,12,13]
        D = [100,200,300,400]
        
        # Prepare the empty array
        result = []
        
        # Concat and insert one-by-one
        for i in range(len(A)):
            result.append('{}{}{}{}'.format(A[i], B[i], C[i], D[i]))
            
        print(result)
        

        输出:

        ['1A10100', '2B11200', '3C12300', '4D13400']
        

        除了上面的代码之外,还有另一种连接和插入结果数组的方法:

        • 您可以在插入之前分配一个临时变量进行连接:
        for i in range(len(A)):
            tmp = str(A[i]) + B[i] + str(C[i]) + str(D[i])
            result.append(tmp)
        
        • 或者您也可以这样将变量放在大括号内
        for i in range(len(A)):
            result.append(f'{A[i]}{B[i]}{C[i]}{D[i]}')
        

        【讨论】:

          猜你喜欢
          • 2021-03-17
          • 1970-01-01
          • 2021-11-23
          • 2022-11-07
          • 1970-01-01
          • 2020-01-01
          • 2021-08-18
          • 2017-09-28
          • 2013-03-25
          相关资源
          最近更新 更多