我正在寻找一个输出包含特定元素的子列表计数的函数。
>>res = count_doc_frequencies([['a', 'b', 'a'], ['a', 'b', 'c'], ['a']])
>>res['a']
3
>>res['b']
2
在我们的案例中,' a'发生在所有三个子列表中,因此输出为3,而' b'碰巧只发生在子列表1和子列表2中,因此输出为2
有人可以帮我吗?
答案 0 :(得分:1)
如果嵌套总是一层深,那么使用list.count()
方法将是最快的:
lst = [['a', 'b', 'a'], ['a', 'b', 'c'], ['a']]
print sum(sublst.count('a') for sublst in lst)
如果你想计算包含元素的子列表的数量,那么:
print sum('a' in sublst for sublst in lst)
(这利用了Bool
是int
的子类)的事实。
答案 1 :(得分:0)
假设你真的想要一个项目的出现的数量,可能是这样的:
>>> import itertools
>>> l = [['a', 'b', 'a'], ['a', 'b', 'c'], ['a']]
>>> sum(1 for i in itertools.chain(*l) if i == 'a')
4
如果您只需要包含该项目的子列表的数量:
>>> sum(1 for i in l if 'a' in l)
3
答案 2 :(得分:0)
String[] splittedField = field.split(", ");
for (String substring : splittedField) {
String[] parts = substring.split("=");
otherMethod(parts[0], parts[1]);
}