我的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方式?'
答案 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})