Я пытаюсь создать бота-палача, который проходит через весь язык Engli sh и считает каждое слово одинаковой длины, символ за символом. Идея состоит в том, что бот будет возвращать наиболее часто используемые символы длины x с индексами y. До сих пор мне удалось импортировать все слова в список и отфильтровать этот список только по словам x длины. Кажется, у меня возникают проблемы с обновлением индексов y.
Для выполнения sh этой задачи я создал словарь, в котором списки хранятся в виде ключевых значений внутри этого словаря. ВСЕ индексы для длины слова были инициализированы равными 0. Идея состоит в том, что я бы go прошел по всей длине слова для всех слов и посчитал вхождение символа по указанному c индексу. Таким образом, мой словарь на самом деле выглядит примерно так:
D = {'a': [0, 0, …, 0], 'b':[0, 0, …, 0], …, 'z': [0, 0, …, 0]}
И что я должен сделать sh, это обновить каждый ключ и индекс каждого ключа, чтобы я мог найти общее вхождение всех букв такой же длины при этом указанном c индексе. Окончательный результат будет выглядеть следующим образом:
D = {'a': [4137, 568, …, 897], …., 'z':[523, 129, … , 321]}
Мое текущее решение пытается сопоставить индексы с ключами и увеличить каждый из индексов, но я получаю следующее сообщение об ошибке:
TypeError: списочные индексы должны быть целыми числами или кусочками, а не str
Я знаю, что это было много, но я очень ценю любую помощь. Спасибо за ваше время и терпение.
def occurence_of_characters(L, word):
length_word = len(word)
letters = string.ascii_letters
numbers = string.digits
characters = letters + numbers + "-" + "."
characterlist = list(characters)
D = {i:[0 for j in range(length_word)] for i in characterlist}
#0 for j in range(length_word)
for word in L:
for key in D:
#l = D.get(key)
if key in word:
for index in key:
D[key][int(index)] = list(map(map(lambda index: index+1, D[key][index]), D[key] ))
print(D)