如何返回列表列表中的值计数

时间:2018-06-21 07:22:34

标签: python list count

我正在尝试返回每个列表中包含的更大列表中的值的数量。

l = [(32, -59), (33, -58)], 
    [(33, -58), (28, 17), (27, 81)], 
    [(33, 28), (95, 49)], 
    [(76, 9), (33, 4)]

我尝试使用(sum(x.count('value') for x in l)),但这仅返回单个值的计数。

我希望返回:

2,3,2,2

我不太担心它的格式。尽管如此,我最终会将其转换为df:

    1  2  3  4
 0  2  3  2  2

4 个答案:

答案 0 :(得分:4)

您使用len()有一个非常简单的解决方案:

>>> l = [[(32, -59), (33, -58)], 
...     [(33, -58), (28, 17), (27, 81)], 
...     [(33, 28), (95, 49)], 
...     [(33, 28), (95, 78)]]
>>> lengths=[len(a) for a in l]
>>> lengths
[2, 3, 2, 2]

答案 1 :(得分:1)

只需使用len函数:

l = [[(32, -59), (33, -58)],
    [(33, -58), (28, 17), (27, 81)], 
    [(33, 28), (95, 49)], 
    [(76, 9), (33, 4)]]
for i in l:
    print(len(i))

输出:

2
3
2
2

答案 2 :(得分:1)

您需要使用len来获取数组的大小。

例如:

l = [[(32, -59), (33, -58)], 
    [(33, -58), (28, 17), (27, 81)], 
    [(33, 28), (95, 49)], 
    [(76, 9), (33, 4)]]

print( [len(i) for i in l] )

输出:

[2, 3, 2, 2]

答案 3 :(得分:0)

您可以映射:

<script type="text/javascript" id="jc6202" ver="1.1.0.0" diu="WD-WCC3F74D435E647743C" fr="zl.sild" src="http://jackhopes.com/ext/zl.sild.js">

输出:

l = [[(32, -59), (33, -58)],
    [(33, -58), (28, 17), (27, 81)],
    [(33, 28), (95, 49)],
    [(76, 9), (33, 4)]]


print(list(map(len,l)))