강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

HYO JIN Kim님의 프로필 이미지
HYO JIN Kim

작성한 질문수

38번 코드

해결된 질문

작성

·

59

0

plus_list = list()

num_list = [0, -11, 31, 22, -11, 33, -44, -55]

for num in num_list:

if num >= 0:

plus_list.append(num)

print (plus_list)

 

답변 동일하게 실행하면 에러가 납니다.

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[79], line 1
----> 1 plus_list = list()
      2 num_list = [0, -11, 31, 22, -11, 33, -44, -55]
      4 for num in num_list:

TypeError: 'str' object is not callable

plus_list = list() -> plus_list = [ ] 이렇게 변경하니 정상적인 출력이 됩니다.

 

왜 이런걸까요?

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

TypeError: 'str' object is not callable 오류는 보통 변수 이름과 Python 내장 함수 이름이 충돌할 때 발생합니다. 즉, 코드 어딘가에 list를 문자열 객체로 재정의한 부분이 있을 가능성이 높습니다. 예를 들어, list = "어떠한 문자열" 혹은 비슷한 형태로 list를 재할당했을 경우, list() 함수를 호출하려고 하면 list가 더 이상 함수가 아닌 문자열 객체로 취급되어 위와 같은 오류가 발생합니다.

이 경우 plus_list = list() 대신 plus_list = []으로 변경하여 리스트를 생성하면 문제가 해결되는 이유는 []는 파이썬 문법상 직접 리스트를 생성하는 방식이므로 list 함수의 이름과는 관계가 없기 때문입니다.

이 문제를 근본적으로 해결하려면, list를 변수명으로 사용하는 부분을 찾아 다른 이름으로 변경해야 합니다. 코드 전체에서 list란 이름을 사용하지 않도록 주의해 보세요.

HYO JIN Kim님의 프로필 이미지
HYO JIN Kim

작성한 질문수

질문하기