代码之家  ›  专栏  ›  技术社区  ›  teclnol

获取python列表中的所有项?

  •  1
  • teclnol  · 技术社区  · 7 年前

    很容易得到列表中的项目数, len(list) ,但假设我有一个矩阵,比如: [[1,2,3],[1,2,3]] 有没有一个pythonic方法返回6?或者我必须迭代。

    3 回复  |  直到 7 年前
        1
  •  4
  •   Brown Bear    7 年前

    你可以用 chain

    from itertools import chain
    l = [[1,2,3],[1,2,3]]
    len(list(chain(*l))) # give you 6
    

    表达式 list(chain(*l)) 给你一张单子: [1, 2, 3, 1, 2, 3]

        2
  •  1
  •   eyllanesc Yonghwan Shin    7 年前

    这样做矩阵numpy数组

    mat = np.array([[1,2,3],[1,2,3]])
    

    arr = mat.ravel()
    

    print(len(arr))
    
        3
  •  1
  •   Khalil Al Hooti    7 年前
    l = [[1,2,3],[1,2,3]]    
    len([item for innerlist in l for item in innerlist])
    

    给你6分

        4
  •  0
  •   Subham    4 年前

    Numpy是最好的选择。 如果你愿意,你可以用简单的 if/else

    list_1 = [1, 2, 3, 'ID45785', False, '', 2.85, [1, 2, 'ID85639', True, 1.8], (e for e in range(589, 591))]
    
    
    
    
    def to_flatten3(my_list, primitives=(bool, str, int, float)):
        flatten = []
        for item in my_list:
            if isinstance(item, primitives):
                flatten.append(item)
            else:
                flatten.extend(item)
        return len(flatten)
       
    print(to_flatten3(list_1))
    
    14
    
    [Program finished]