@Timebird

Как, найдя значения в одном списке, сосчитать количество тех же самых значений во втором?

Пример:
Допустим, есть список: lst1 = [a, b, c]. И второй список: lst2 = [d, a d, e, a, f, a, d, b, b, c, a, b, k, e, a, c, c, b].
Надо на каждое из значений lst1 найти количество тех же a, b, c в lst2, чтобы вывод был такой:
a: 5
b: 4
c: 3
Как это реализуется при помощи словаря? Может, есть какое-то изящное решение, чтобы не городить счётчики на каждое из значений lst1?
  • Вопрос задан
  • 344 просмотра
Решения вопроса 1
from collections import Counter

lst1 = ["a", "b", "c"]
lst2 = ["d", "a" "d", "e", "a", "f", "a", "d", "b", "b", "c", "a", "b", "k", "e", "a", "c", "c", "b"]

counter = Counter(lst2)
for key in lst1:
    print(f'{key}: {counter[key]}')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Hrabryi
Используй генератор словарей - получишь самое изящное решение (и главное быстрое):
print({key: lst2.count(key) for key in lst1})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы