Я думаю, вам нужно прочитать о том, как циклы снова работают. Когда вы перебираете что-то, значение присваивается переменной. В вашем коде это each
. Вы никогда не используете эту переменную ни для чего, но я думаю, что это то, что вы ищете.
for each in range(len(Sentence)):
ord_sentence.append(ord(Sentence[each]))
Итерирование по range
и индексация, как вы делаете здесь, работает, но это не так прямо, как просто итерации по списку напрямую. Вместо этого вы можете сделать:
for each in Sentence: # no range, len, each is a character
ord_sentence.append(ord(each)) # take its ord() directly
Или вы можете использовать понимание списка для создания нового списка непосредственно из старого, без отдельного l oop и набора вызовов append
:
ord_sentence = [ord(each) for each in Sentence]
Несмотря на то, что each
- это имя, которое вы использовали в своем коде, лучше присвоить переменным более точное c имя, которое сообщит вам, что означает значение. В первой версии здесь, где вы перебираете range
, я бы использовал index
, поскольку это то, что вы получаете (индекс в списке). Для двух других, value
или character
может иметь больше смысла, так как значение представляет собой один символ из списка Sentence
. Говоря об этом списке, его название немного вводит в заблуждение, так как я ожидаю, что предложение будет строкой или, возможно, списком слов, а не списком символов (которые могут быть из более или менее одного предложения, например, ['f', 'o', 'o']
или ['F', 'o', 'o', '.', ' ', 'B', 'a', 'r', '.']
).