TypeError: Unhashable Type: Python의 슬라이스
슬라이싱은 Python에서 매우 일반적인 기술입니다. 요소의 인덱스를 사용하여 문자열, 목록, 튜플 등과 같은 주어진 시퀀스에서 데이터를 추출할 수 있습니다.
슬라이싱의 매우 간단한 예는 다음과 같습니다.
lst = [2, 5, 6, 7, 3, 1]
print(lst[0:2])
출력:
[2, 5]
위의 예는 슬라이싱 기법을 사용하여 목록의 일부를 추출합니다. 인덱스 사용에 유의하십시오.
Python에서 TypeError: unhashable type: 'slice'
주어진 데이터 유형에 대해 지원되지 않는 작업을 수행하려고 하면 Python에서 TypeError
가 발생합니다. 사전, DataFrame 등과 같이 지원되지 않는 데이터 유형에 이 기술을 사용하려고 하면 슬라이싱 중에 TypeError
가 발생할 수도 있습니다.
예를 들어:
d = {"a": 10, "b": 11}
d[0:2]
출력:
TypeError: unhashable type: 'slice'
위의 예에서 발생한 해시할 수 없는 유형: '슬라이스'
오류에 유의하십시오.
사전은 해싱 함수를 사용하여 해당 키를 사용하여 값을 찾습니다. 값의 인덱스를 저장하지 않습니다.
여기서 해시 불가능은 슬라이싱 작업이 해시 가능하지 않고 사전에서 작동하지 않음을 의미합니다.
이 튜토리얼은 Python의 unhashable type: 'slice'
오류를 해결하는 방법을 보여줍니다.
Python에서 TypeError: unhashable type: 'slice'
수정
가장 기본적인 수정은 슬라이싱을 지원하는 시퀀스를 사용하는 것입니다. 여기에는 목록, 문자열, 사전, 튜플 및 기타 지원되는 시퀀스가 포함됩니다.
슬라이싱을 지원하지 않는 사전을 목록으로 변환하고 이 오류를 수정할 수 있습니다.
사전의 경우 values()
및 keys()
를 사용하여 사전에 있는 값 및 키의 보기 개체를 가져올 수 있습니다. 이 객체는 list()
함수를 사용하여 슬라이싱을 지원하는 목록으로 변환할 수 있습니다.
아래 코드를 참조하십시오.
d = {"a": 10, "b": 11}
print(list(d.values())[0:2])
print(list(d.keys())[0:2])
출력:
[10, 11]
['a', 'b']
위의 예는 사전을 키와 값의 두 목록으로 변환합니다. 이 목록에서 슬라이싱을 수행합니다.
items()
함수를 사용하여 튜플 목록에서 키와 값 쌍의 뷰 객체를 반환할 수도 있습니다.
아래 코드를 참조하십시오.
d = {"a": 10, "b": 11}
print(list(d.items())[0:2])
출력:
[('a', 10), ('b', 11)]
결론
이 튜토리얼은 Python의 unhashable type: 'slice'
오류와 이를 수정하는 방법을 보여줍니다. 먼저 Python의 슬라이싱 기술에 대해 논의했습니다.
우리는 사전과 사전이 이 기술을 지원하지 않는 이유를 설명했습니다. 수정에는 items()
, keys()
및 values()
와 같은 다양한 기능을 사용하여 사전을 사용하여 목록을 생성할 수 있으며, 이는 슬라이싱에 추가로 사용할 수 있습니다.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn관련 문장 - Python Error
- AttributeError 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.
- AttributeError 해결: 'list' 객체 속성 'append'는 읽기 전용입니다.
- AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.
- AttributeError: 'Dict' 객체에 Python의 'Append' 속성이 없습니다.
- AttributeError: 'NoneType' 객체에 Python의 'Text' 속성이 없습니다.
- AttributeError: Int 객체에 속성이 없습니다.