【问题标题】:map in python, that map multiple objects to each object in list [duplicate]python中的映射,将多个对象映射到列表中的每个对象[重复]
【发布时间】:2011-08-10 15:55:11
【问题描述】:

可能重复:
Making a flat list out of list of lists in Python

如何从列表中创建例如 [[1,2],[3,4]] 或 [(1,2),(3,4)] 列表 [1,2,3,4]

列表理解(或映射、过滤器)似乎没有将映射对象映射到多个其他对象。

类似于 C# 的 LINQ 中的 SelectMany

【问题讨论】:

    标签: python list-comprehension


    【解决方案1】:

    标准库很酷:

    >>> import itertools
    >>> l = [[1,2],[3,4]]
    >>> list(itertools.chain(*l))
    [1, 2, 3, 4]
    

    【讨论】:

      【解决方案2】:

      只要你知道它的深度正好是 2 层,你就可以做到

      [j for i in [[1,2],[3,4]] for j in i]
      

      在列表中使用i 进行迭代,依次为i 提供值[1,2][3,4],并在这些子列表中使用j。因此这个表达式的结果是[1, 2, 3, 4]

      【讨论】:

        【解决方案3】:

        您想要展平列表。

        [y for x in [[1,2],[3,4]] for y in x]
        

        【讨论】:

          【解决方案4】:
          >>l=[1,2,3,4]
          >>zip(l[:2:],l[1:][:2:])
          [(1, 2), (2, 3)]
          
          >>l=[(1, 2), (2, 3)]
          >>sum(l,())
          (1, 2, 2, 3)
          

          这不仅仅是你需要的吗?

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-10-16
            • 2016-10-02
            • 1970-01-01
            • 2018-06-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-03-11
            相关资源
            最近更新 更多