해결된 질문
작성
·
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
란 이름을 사용하지 않도록 주의해 보세요.