Если вы ищете букву, которая появляется наибольшее количество раз, я бы порекомендовал следующий код:
def get_popular(strings):
full = ''.join(strings)
unique = list(set(full))
return max(
list(zip(unique, map(full.count, unique))), key=lambda x: x[1]
)
rock_collections = [
'aasdadwadasdadawwwwwwwwww',
'wasdawdasdasdAAdad',
'WaSdaWdasSwd',
'daWdAWdawd',
'QaWAWd',
'fAWAs',
'fAWDA'
]
print(get_popular(rock_collections)) # ('d', 19)
Позвольте мне разбить код для вас:
full
содержит каждую из строк вместе с без букв между ними. set(full)
создает набор, то есть он содержит каждую уникальную букву только один раз . list(set(full))
превращает это обратно в список, что означает, что он сохраняет порядок, когда вы перебираете элементы в наборе.
map(full.count, unique)
перебирает каждую уникальную букву и подсчитывает, сколько их в строка. zip(unique, ...)
ставит эти цифры с соответствующими буквами. key=lambda x: x[1]
- это способ сказать: не принимайте максимальное значение кортежа, вместо этого принимайте максимальное значение второго элемента кортежа (то есть, сколько раз появляется буква). max
находит наиболее распространенную букву, используя вышеупомянутый ключ.