【问题标题】:How do I criss cross two lists together in python? [duplicate]如何在python中交叉两个列表? [复制]
【发布时间】:2018-01-12 12:25:35
【问题描述】:

如何在 python 中将两个列表交叉在一起? 示例:

list_1 = [1, 2, 3]
list_2 = [4, 5, 6]

预期结果:

combined_list = [1, 4, 2, 5, 3, 6]

【问题讨论】:

  • 如果两个列表长度不同会怎样?
  • 那就不行了。
  • 我希望它仅在列表长度相同时才起作用
  • 如果它们的长度不同,你想发生什么?
  • 那我不想发生任何事情。

标签: python list


【解决方案1】:

这样做的pythonic方式:

[item for sublist in zip(a,b) for item in sublist]

根据请求,如果您只想要两个列表长度相同的列表,则可以使用:

[item for sublist in zip(a,b) for item in sublist if len(a) == len(b)]

并查看结果是否为空列表。

【讨论】:

    【解决方案2】:
    l = []
    for x,y in zip(list_1,list_2):
        l.append(x)
        l.append(y)
    

    【讨论】:

      【解决方案3】:

      使用itertools

      list_1 = [1, 2, 3]
      list_2 = [4, 5, 6]
      
      new_list = list(itertools.chain.from_iterable(zip(list_1,list_2))) 
      # [1, 4, 2, 5, 3, 6]
      

      【讨论】:

        猜你喜欢
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-28
        • 2020-06-04
        • 1970-01-01
        相关资源
        最近更新 更多