TypeError: 목록 인덱스는 튜플이 아닌 정수 또는 슬라이스여야 합니다.

ItsMyCode |

Python에서 목록 요소에 액세스하는 경우 인덱스 위치를 사용하여 액세스해야 합니다. 튜플이나 리스트를 인덱스로 지정하면 파이썬은 typeerror를 던질 것입니다: 리스트 인덱스는 튜플이 아니라 정수나 슬라이스여야 합니다.

이 문서에서는 이 오류의 의미와 코드에서 typeerror를 해결하는 방법을 살펴봅니다.

TypeError: 목록 인덱스는 튜플이 아닌 정수 또는 슬라이스여야 합니다.



*예시 1 – *

오류를 재현하기 위해 아래 예를 살펴보겠습니다.

# Python Accessing List
numbers=[1,2,3,4]
print(numbers[0,3])



산출

Traceback (most recent call last):
  File "c:\Projects\Tryouts\main.py", line 3, in <module>
    print(numbers[0,3])
TypeError: list indices must be integers or slices, not tuple


위의 예에서는 [0,3]을 인덱스 값으로 전달하여 목록 요소에 액세스합니다. 파이썬 인터프리터는 튜플로 취급하고 typeerror: list 인덱스는 튜플이 아니라 정수 또는 슬라이스여야 하기 때문에 중간에 있는 쉼표와 혼동될 것입니다.

*해결책 *

튜플이 목록의 인덱스 값과 일치하지 않기 때문에 목록에서 항목에 액세스하기 위해 튜플 값을 지정할 수 없습니다. 목록에 액세스하려면 적절한 색인을 사용해야 하며 쉼표 대신 아래와 같이 콜론을 사용합니다.

# Python Accessing List
numbers=[1,2,3,4]
print(numbers[0:3])



산출

[1, 2, 3]


*예시 2 – *

개발자가 만드는 또 다른 일반적인 문제는 목록 안에 목록을 만드는 동안입니다. 위의 코드를 보면 외부 목록의 항목에 대한 표현식 사이에 쉼표가 없으며 Python 인터프리터는 여기서 TypeError를 발생시킵니다.

coin_args = [
  ["pennies", '2.5', '50.0', '.01']
  ["nickles", '5.0', '40.0', '.05']
]

print(coin_args[1])


산출

c:\Projects\Tryouts\main.py:2: SyntaxWarning: list indices must be integers or slices, not tuple; perhaps you missed a comma?
  ["pennies", '2.5', '50.0', '.01'] 
Traceback (most recent call last):
  File "c:\Projects\Tryouts\main.py", line 2, in <module>
    ["pennies", '2.5', '50.0', '.01']
TypeError: list indices must be integers or slices, not tuple


해결책

다시 문제는 목록 요소 사이에 쉼표를 추가하는 것을 잊었다는 것입니다. 이 문제를 해결하려면 아래와 같이 쉼표를 사용하여 목록 목록에서 목록을 구분해야 합니다.

coin_args = [
  ["pennies", '2.5', '50.0', '.01'] ,
  ["nickles", '5.0', '40.0', '.05']
]

print(coin_args[1])


산출

['nickles', '5.0', '40.0', '.05']


게시물 TypeError: list indices must be integers or slices, not tupleItsMyCode에 처음 나타났습니다.

좋은 웹페이지 즐겨찾기