у меня есть 2 списка, как это:Подсчет количества вхождений в списке
prefix = ['b', 'bo', 'br']
word = ['bring', 'boring', 'bold', 'bells']
Как подсчитать сколько раз каждый префиксы в списке слов?
Она должна возвращать
[4, 2, 1]
у меня есть 2 списка, как это:Подсчет количества вхождений в списке
prefix = ['b', 'bo', 'br']
word = ['bring', 'boring', 'bold', 'bells']
Как подсчитать сколько раз каждый префиксы в списке слов?
Она должна возвращать
[4, 2, 1]
Использование списка понимание, str.startswith
и sum
[sum(w.startswith(p) for w in word) for p in prefix] # [4, 2, 1]
отлично, спасибо! теперь вы можете дать мне ответ с помощью карты, уменьшить или фильтровать функцию? я пытаюсь понять, как это работает – RealQ
@RealQ эквивалентная функциональность может быть достигнута с помощью 'map (lambda p: sum (w.startswith (p) для w в слове), префикс)' – vaultah
@RealQ oh и 'map (sum, ((w.startswith (p) для w в слове) для p в префиксе)). – vaultah
как в принятом ответе, но используя карту():
outl = map(lambda p: sum(w.startswith(p) for w in word), prefix)
Что вы пытаетесь так далеко? вам нужны вложенные циклы, чтобы перебирать оба списка и находить внешний вид элементов первого списка во втором списке, используя оператор 'in' –