正規表現は、文字列内で複雑なパターンを検索する場合に便利です。シンプルな(アルファベットの文字は1つだけ) "パターン"を数えたいと思うので(正規表現とは対照的に)、正規表現はここで選択するツールではありません。
私が試していることを正しく理解している場合、これを解決する最も透過的な方法は、すべての行を繰り返し、その行のすべての文字を繰り返し処理し、その文字がアルファベットの場合は、エントリ。コードでは:このループは、ファイルを介して実行している
filename=raw_input()
found = {}
with open(filename) as file:
for line in file:
for character in line:
if character in "abcdefghijklmnopqrstuvxyz":
# Checking `in (explicit string)` is not quick, but transparent.
# You can use something like `character.isalpha()` if you want it to
# automatically depend on your locale.
found[character] = found.get(character, 0)+1
# If there is no dictionary entry for character yet, assume default 0
# If you need e.g. small and capital letters counted together,
# "Normalize" them to one particular type, for example using
# found[character.upper()] = found.get(character, 0)+1
後、辞書found
は、各文字の出現箇所の数が含まれています。
はこの宿題ですか?もしそうなら、そのようにタグ付けされるべきです。 –
いいえ、私は 'ルーキーのためのpython'を使用してタスクを通過します。私は将来の参照のためにそれを念頭に置いておきます。ありがとう – Unknown
+1良い質問:-) –