본문 바로가기
파이썬

파이썬 문자열의 문자 수

by º기록 2020. 11. 26.
반응형

여기에 파이썬 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

 

 

반응형

댓글