获取python列表中的所有项目?

时间:2018-09-29 23:09:09

标签: python python-3.x list

很容易获得列表len(list)中的项目数,但是说我有一个矩阵,如: [[1,2,3],[1,2,3]] 有没有pythonic的方法来返回6?还是我必须迭代。

4 个答案:

答案 0 :(得分:1)

您可以使用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]

答案 1 :(得分:0)

使矩阵numpy数组像这样

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

像这样制作一维数组

arr = mat.ravel()

打印长度

print(len(arr))

答案 2 :(得分:0)

l = [[1,2,3],[1,2,3]]    
len([item for innerlist in l for item in innerlist])

给你6

答案 3 :(得分:0)

你只需要扁平化列表。 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] 
相关问题