반응형
Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- I'm Sorry
- 딥러닝
- 빅데이터
- 사이버보안
- 알고리즘
- 자바스크립트
- 컴퓨터과학
- 머신러닝
- 데이터과학
- 네트워크보안
- 네트워크
- 프로그래밍언어
- 버전관리
- 데이터분석
- 인공지능
- 웹개발
- 소프트웨어공학
- 2
- 파이썬
- Yes
- 클라우드컴퓨팅
- 데이터베이스
- 데이터구조
- 보안
- 프로그래밍
- 자료구조
- 소프트웨어
- 코딩
- 컴퓨터비전
- 컴퓨터공학
Archives
- Today
- Total
스택큐힙리스트
"TypeError: 'type' 객체는 가로채기가 불가능합니다" 함수 서명에서 본문
반응형
제가 이 코드를 실행할 때 이 오류를 왜 받고 있나요?
Traceback (most recent call last):
File main.py, line 13, in <module>
def twoSum(self, nums: list[int], target: int) -> list[int]:
TypeError: 'type' object is not subscriptable
nums = [4,5,6,7,8,9]
target = 13
def twoSum(self, nums: list[int], target: int) -> list[int]:
dictionary = {}
answer = []
for i in range(len(nums)):
secondNumber = target-nums[i]
if(secondNumber in dictionary.keys()):
secondIndex = nums.index(secondNumber)
if(i != secondIndex):
return sorted([i, secondIndex])
dictionary.update({nums[i]: i})
print(twoSum(nums, target))
nums = [4,5,6,7,8,9]
target = 13
def twoSum(self, nums: list[int], target: int) -> list[int]:
dictionary = {}
answer = []
for i in range(len(nums)):
secondNumber = target-nums[i]
if(secondNumber in dictionary.keys()):
secondIndex = nums.index(secondNumber)
if(i != secondIndex):
return sorted([i, secondIndex])
dictionary.update({nums[i]: i})
print(twoSum(nums, target))
nums = [4,5,6,7,8,9]
target = 13
def twoSum(self, nums: list[int], target: int) -> list[int]:
dictionary = {}
answer = []
for i in range(len(nums)):
secondNumber = target-nums[i]
if(secondNumber in dictionary.keys()):
secondIndex = nums.index(secondNumber)
if(i != secondIndex):
return sorted([i, secondIndex])
dictionary.update({nums[i]: i})
print(twoSum(nums, target))
답변 1
다음 답은 Python < 3.9에만 적용됩니다.
list[int]
표현식은 클래스인 list
를 인덱싱하려고 시도하고 있습니다. 클래스 객체는 그들의 메타클래스의 유형과 동일한 유형입니다. 이 경우에는 type
입니다. type
은 __getitem__
메서드를 정의하지 않으므로 list[...]
을 사용할 수 없습니다.
올바르게 하려면, 내장 list
대신에 typing.List
를 가져와서 타입 힌트로 사용해야 합니다:
from typing import List
...
def twoSum(self, nums: List[int], target: int) -> List[int]:
만약 추가적으로 import를 피하고 싶다면, 일반화된 형식을 제외한 간단한 형식 힌트로 단순화할 수 있습니다:
def twoSum(self, nums: list, target: int) -> list:
또는, 형식 힌트를 완전히 제거할 수도 있습니다:
def twoSum(self, nums, target):
답변 2
TypeError: 'type' object is not subscriptable는 파이썬에서 발생하는 오류 메시지 중 하나입니다. 이 오류는 함수의 시그니처에서 발생할 수 있습니다. 이 문제에 대해 설명하면서 SEO에 민감한 한국어 에세이를 작성해 보겠습니다.제목: 파이썬 오류: 'type' 객체는 첨자(subscript)를 지원하지 않습니다.
설명:
파이썬은 사용하기 쉬운 프로그래밍 언어로 유명합니다. 그러나 때로는 개발자들이 오류를 만날 수 있습니다. 이번에는 TypeError: 'type' 객체는 첨자(subscript)를 지원하지 않습니다라는 오류가 발생하는 상황에 대해 알아보겠습니다.
처음으로, 우리는 파이썬에서 'type'이라는 단어가 무엇을 의미하는지 알아야 합니다. 'type'은 데이터 형식을 나타내는 내장 함수입니다. 예를 들어, 데이터의 형식을 확인하거나 새로운 클래스를 만들 때 사용할 수 있습니다.
이 오류는 함수 시그니처에서 발생합니다. 함수 시그니처는 함수를 정의할 때 사용되는 매개변수와 반환 유형의 정보를 포함하는 부분입니다. 이 오류는 파이썬이 함수 시그니처에서 'type' 객체를 대상으로 첨자(subscript) 연산을 수행할 때 발생합니다.
그렇다면 첨자 연산이란 무엇일까요? 파이썬에서 첨자 연산은 리스트나 튜플과 같은 시퀀스 객체의 특정 요소를 선택하기 위해 사용됩니다. 문제는 'type' 객체가 첨자 연산을 지원하지 않기 때문에 발생하는 것입니다. 함수 시그니처에 'type' 객체를 포함하면 파이썬은 해당 객체에 첨자 연산을 수행하려고 시도하면서 TypeError를 발생시킵니다.
이 오류를 해결하기 위해서는 해당 함수의 시그니처를 다시 조정해야 합니다. 'type' 객체를 대상으로 첨자 연산을 하고자 하는 목적에 따라 적절한 데이터 형식을 선택해야 합니다. 데이터 형식을 올바르게 정의하면 이 오류를 방지할 수 있습니다.
결론적으로, TypeError: 'type' 객체는 첨자(subscript)를 지원하지 않습니다는 파이썬에서 발생하는 오류 중 하나입니다. 이 오류는 함수 시그니처에서 'type' 객체를 대상으로 첨자 연산을 시도할 때 발생하며, 이를 해결하기 위해서는 적절한 데이터 형식을 선택해야 합니다. 파이썬 프로그래머들은 이러한 오류를 신속하게 해결할 수 있도록 이해하고 대응해야 합니다.
키워드: TypeError, 'type' 객체, 첨자(subscript) 연산, 함수 시그니처, 파이썬 프로그래밍
반응형
Comments