문자열에서 복잡한 패턴을 찾으려면 정규식이 유용합니다. 단순한 (단 하나의 알파벳 문자) "패턴"을 세고 싶기 때문에 (정규식 대신) 정규 표현식을 선택하는 도구가 아닙니다.
내가 무엇을 노력하고 있는지 제대로 이해한다면 가장 투명하게 해결할 수있는 방법은 모든 행을 반복하고 그 행의 모든 문자를 반복하고 그 문자가 영문자이면 해당 사전에 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
각 문자에 대한 발행 수의 수를 포함합니다. 파일이 한 번에 모든 것을 읽을 수있을 정도로 작은 경우
이 숙제인가? 그렇다면 태그로 지정해야합니다. –
아니, '신인을위한 파이썬'을 사용하고 작업을 수행하고 있습니다. 그러나 나는 미래의 참고를 위해 이것을 명심 할 것이다. 덕분에 – Unknown
+1 좋은 질문 :-) –