【问题标题】:Creating a nested list with list comprehension in Python [duplicate]在 Python 中创建具有列表理解的嵌套列表 [重复]
【发布时间】:2016-09-25 02:54:36
【问题描述】:

基本上,我想对列表中的项目进行分组。例如:

  1. 对于[1, 2, 3, 4, 5, 6],我要[[1, 2, 3], [4, 5, 6]]
  2. 对于[1, 2, 3, 4, 5, 6, 7],我要[[1, 2, 3], [4, 5, 6], [7]]

我知道如何取消嵌套列表,但我不知道如何创建嵌套列表。

【问题讨论】:

    标签: python list for-loop list-comprehension nested-lists


    【解决方案1】:

    您可以将列表推导与range3 的输出切片一起使用:

    >>> l = [1, 2, 3, 4, 5, 6, 7]
    >>> [l[i:i+3] for i in range(0, len(l), 3)]
    [[1, 2, 3], [4, 5, 6], [7]]
    
    >>> l = [1, 2, 3, 4, 5, 6]
    >>> [l[i:i+3] for i in range(0, len(l), 3)]
    [[1, 2, 3], [4, 5, 6]]
    

    Range 接受三个参数,其中第一个是范围的开始,第二个是结束,第三个是步骤。如果您使用的是 Python 2,请改用 xrange

    【讨论】:

      【解决方案2】:

      我认为你可以这样做:

      target = [1, 2, 3, 4, 5, 6, 7]
      n = 3
      print([target[i:i+n] for i in range(0, len(target), n)])
      

      您可以通过更改 n 来更改子列表的大小。但是在上面的代码中,我使用了两次target,希望能找到一种使用target一次的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-21
        • 2015-06-24
        相关资源
        最近更新 更多