inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

38번 코드

해결된 질문

78

HYO JIN Kim

작성한 질문수 12

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 인턴

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

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

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

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

강의 추천해주세요

2

27

1

케이테스트 서버 운영 방법

2

49

1

cpu&memory 재설정하기에 질문이 있습니다.

1

52

2

안티그라비티 저는 오픈폴더라고 나와요ㅜ

1

34

2