[Python(파이썬)] 세트(set)
세트 (set) 중복된 데이터를 허용하지 않는다. 비순차 자료형, 가변 자료형 인덱스로 접근 불가하다. 항목들을 {} 로 감싸고 각각의 항목은 쉼표(,)로 구분한다. 집합 선언 방법 - set() # 빈 집합 선
young-library.tistory.com
세트 (set)
- 중복된 데이터를 허용하지 않는다.
- 비순차 자료형, 가변 자료형
- 인덱스로 접근 불가하다.
- 항목들을 {} 로 감싸고 각각의 항목은 쉼표(,)로 구분한다.
>>> test = {'a','b','c'}
# set의 인덱스 접근
>>> test[1]
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
test[1]
TypeError: 'set' object is not subscriptable
set(집합)을 인덱스로 접근하려할 때
TypeError: 'set' object is not subscriptable
다음과 같은 TypeError가 발생한다.
이유는 set은 순서가 없는 중복이 불가능한 자료형이기 때문이다.
set은 원소의 위치를 저장하지 않기 때문에 원소간의 순서가 없어 인덱싱이 불가능하다.
따라서 set(집합)을 인덱스로 접근하고 싶을 때는 순서가 있는 자료형으로 변환한 후 인덱스 접근해야한다.
test = {'a', 'b' ,'c'} 일 때
test[1] X -> list(test)[1] O (리스트로 변환 후 접근)
>>> test = {'a', 'b' ,'c'}
# 집합 -> 저장한 그대로 저장되지 않음
>>> test
{'b', 'a', 'c'} # 순서가 변경 되어있음
>>> list(test)[1]
'a'
>>> test = {'a','b','c'}
>>> list(test) # 집합 test self 객체는 변하지 않고 새로 list를 반환
['b', 'a', 'c']
>>> test[1]
Traceback (most recent call last):
File "<pyshell#47>", line 1, in <module>
test[1]
TypeError: 'set' object is not subscriptable
>>> test = list(test) # test 자체를 바꾸고 싶을땐 다시 저장해야함
>>> test[1]
'a'
'Study > Error' 카테고리의 다른 글
[Python(파이썬)] TypeError: 함수에 필요한 실행 인자 개수 오류 (0) | 2021.08.06 |
---|
댓글