반응형
여기에 파이썬 newb. 주어진 문자열에서 문자 "a"의 수를 세려고합니다. 코드는 다음과 같습니다. 문자열 "banana"에서 3 대신 1을 계속 반환합니다. 모든 의견을 부탁드립니다.
def count_letters(word, char):
count = 0
while count <= len(word):
for char in word:
if char == word[count]:
count += 1
return count
print count_letters('banana','a')
해결 방법
다른 답변은 코드에 무엇이 잘못되었는지 보여줍니다. 그러나 운동을 위해이 작업을 수행하는 것이 아니라면이를 수행하는 기본 제공 방법도 있습니다.
>>> 'banana'.count('a')
3
Danben은이 수정 된 버전을 제공했습니다.
def count_letters(word, char):
count = 0
for c in word:
if char == c:
count += 1
return count
여기에 몇 가지 다른 방법이 있습니다. 파이썬에 대해 더 많이 알려줄 것입니다!
유사하지만 더 짧은 for
루프. 부울이 참이면 1, 거짓이면 0이 될 수 있다는 사실을 악용합니다.
def count_letters(word, char):
count = 0
for c in word:
count += (char == c)
return count
짧은 for 루프는 일반적으로 목록 / 생성기 이해로 바꿀 수 있습니다. 이렇게하면 각 문자에 해당하는 정수 목록이 생성됩니다. 문자가 char
와 일치하지 않으면 0, 일치하면 1을 사용하여 합산합니다.
def count_letters(word, char):
return sum(char == c for c in word)
다음 문자는 char
와 일치하지 않는 모든 문자를 필터링하고 남은 문자 수를 계산합니다.
def count_letters(word, char):
return len([c for c in word if c == char])
참조 페이지 https://stackoverflow.com/questions/2932511
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python 목록에서 정렬과 uniq를 수행하는 가장 깨끗한 방법은 무엇입니까? (0) | 2020.11.27 |
---|---|
파이썬에서 openCV 비디오 저장 (0) | 2020.11.27 |
파이썬 Python을 사용하여 직접 실행 가능한 크로스 플랫폼 GUI 앱을 어떻게 만들 수 있습니까? (0) | 2020.11.26 |
파이썬 Python-목록의 가중치 평균 (0) | 2020.11.26 |
파이썬 IOError : [Errno 13] 권한이 거부되었습니다. (0) | 2020.11.26 |
댓글