Вы можете использовать наборы, чтобы получить уникальные имена, присутствующие в подсписках:
initial_list = [['banana', 'oranges', 'grapes'],['banana', 'grapes'],['grapes', 'oranges', 'banana']]
unique = set()
for l in initial_list:
unique = unique.union(set(l))
Затем подсчитать, сколько в списке присутствует каждый элемент (при условии, что каждый элемент присутствует или отсутствует, не дублируется):
from collections import defaultdict
result = defaultdict(lambda: 0)
for element in unique:
for l in initial_list:
result[element] += (element == l[0])
Значение по умолчанию используется для получения начального значения 0 И ваш результат должен быть в result
Используется тот факт, что bool
является подклассом int
для оценки element == l[0]
либо 1
, либо 0
Без collections
вам необходимо отредактировать последнюю строку так:
try:
result[element] += (element == l[0])
except KeyError:
result[element] = 1