在python3中计算sub_lists长度

时间:2016-09-30 04:25:32

标签: python python-3.x

我的python是3 ver。 我有一个列表,其中包含子列表,如:

L=[[1,2], [3,4], [5,6,7]]

我想计算所有sub_list的长度,并将它们写入字典,如下所示:

D={2:2,3:1}

也就是说,我们有两个长度为2的列表,以及一个长度为3的列表。

可以通过for-loop + check来完成D [key]是否存在。

可能有一些' pythonic方式?'

2 个答案:

答案 0 :(得分:2)

使用if存储列表长度作为键,并且每次只增加1以获得匹配的列表长度:

defaultdict

或者也可以使用from collections import defaultdict d = defaultdict(int) L = [[1,2], [3,4], [5,6,7]] for li in L: d[len(li)] += 1 print(d) # defaultdict(<class 'int'>, {2: 2, 3: 1}) 中的Counter

collections

答案 1 :(得分:0)

您需要遍历列表,并检查长度是否存在。如果存在,则将值递增1,否则将值添加为1.下面是示例代码。

from collections import Counter

c = Counter(len(li) for li in L)

print(c) # Counter({2: 2, 3: 1})