문자가 문자열에 표시되는 횟수를 계산하려고하므로 count() 함수를 사용하고 있습니다. count() 함수를 여러 개 사용하면 지루한 것처럼 보입니다. 10 + 글자를 셈하려고 해요.여러 부분 문자열을 계산하는 파이썬
def printer_error(s):
#errorLetters = ('r','s','t','u','v','w','x','y','z')
errorRate = s.count('o') + s.count('p') + s.count('q')
print(errorRate)
return
printer_error('aaaxbbbbyyhwawiwjjjwwm')
내 첫 번째 시도는 s.count (errorLetters)했지만 수() 함수는 튜플 또는 목록을 할 수 없기 때문에 그 실패했습니다.
현재 코드는 내가 원하는 결과를 제공하지만 errorLetters 변수에 주석이 달린 나머지 문자를 연결해야하는데 20 + 연결을 만드는 것을 포함하지 않는 또 다른 방법이 있습니까?
현재 나와있는 ERRORRATE 변수 아무것도 계산하지 않습니다,하지만 난에 미리를 한테 문자 :
표준 라이브러리
collections
모듈은 유용하고 효과적 일 것Counter
객체를 제공 w '와'y '를 입력하고 원하는 결과를 얻었습니다. – bittercold코멘트에 대해 우리가 downvote 할 수없는 것은 수치 스럽습니다. @ewcz 제안은 좋지 않습니다. 루프 내에서's.count'를 사용하는 것은 불필요하게 비효율적입니다. – wim
@wim fair enough;)'sum ([1이면 c는 errorLetters에, c는 0이면 c)]' – ewcz