Pythonの辞書から要素を検索、要素の追加で分からない箇所があります

前提

初心者です。質問すみません。

こちらは文章中にどれだけアルファベットが出現したか(大文字小文字は同一視、空白、記号、数字はノーカウント)
を出力するプログラムです
いくつかなぜ動くのかわからない箇所があります。

コード7行目
①if letter .isalpha() and letter not in result:
として、辞書resultにletterが入っていないかどうかの条件チェックがあります。
つまり新規のアルファベットしか次の辞書に追加する処理に進めないはずです。
なので理論上すべて{'a': 1, 'b': 1, 'c': 1}のようなvalueが1だけの辞書になると思うのですが
普通に問題なく2以上の数を集計できております。ここで集計できている理論がわかりません

コード8行目
①result[letter]
として左辺にletter を入れる意味は何でしょうか?なんのために入れるのでしょうか?

該当のソースコード

def count_letters(text): result = {} text = text.lower() # Go through each letter in the text for letter in text: # Check if the letter needs to be counted or not if letter .isalpha() and letter not in result: result[letter] = text.lower().count(letter) # Add or increment the value in the dictionary return result print(count_letters("AaBbCc")) # Should be {'a': 2, 'b': 2, 'c': 2} print(count_letters("Math is fun! 2+2=4")) # Should be {'m': 1, 'a': 1, 't': 1, 'h': 1, 'i': 1, 's': 1, 'f': 1, 'u': 1, 'n': 1} print(count_letters("This is a sentence.")) # Should be {'t': 2, 'h': 1, 'i': 2, 's': 3, 'a': 1, 'e': 3, 'n': 2, 'c': 1}

コメントを投稿

0 コメント