집합(set) 자료형

중복

리스트나 튜플은 순서가 있기(ordered) 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만 set 자료형은 순서가 없기(unordered) 때문에 인덱싱으로 값을 얻을 수 없다.

만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 다음과 같이 리스트나 튜플로 변환한후 해야 한다.


#set > list
>>> s1 = set([1,2,3])
>>> l1 = list(s1)
>>> l1
[1, 2, 3]
>>> l1[0]
1

#set > tuple
>>> t1 = tuple(s1)
>>> t1
(1, 2, 3)
>>> t1[0]
1

교집합, 합집합, 차집합 구하기

집합 자료형 관련 함수들

>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}
>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}
>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1
{1, 3}

리스트,튜플,딕셔너리 등에서 데이터 추출해 set 생성하기

Set comprehension은 리스트, 튜플, 딕셔너리 등에서 데이터를 추출해 새로운 set을 생성하는 기능

List comprehension과 비슷한 구문으로, 중괄호({}) 안에 
for loop를 포함하여 set 객체를 생성합니다. 
다음은 list comprehension과 set comprehension의 차이점을 보여주는 예시입니다.

# List comprehension
numbers = [1, 2, 3, 4, 5]
squares = [n**2 for n in numbers]  # [1, 4, 9, 16, 25]

# Set comprehension
numbers = [1, 2, 3, 4, 5]
squares = {n**2 for n in numbers}  # {1, 4, 9, 16, 25}

위의 코드에서 **`squares`** 변수는 List comprehension과 Set comprehension 각각으로 생성된 결과를 담고 있습니다. List comprehension은 대괄호([]) 안에 데이터를 추출하여 리스트를 생성하고, Set comprehension은 중괄호({}) 안에 데이터를 추출하여 set을 생성합니다. 
Set comprehension은 생성한 set에서 중복된 값을 제거하는 특징이 있습니다.

리스트나 튜플은 순서가 있기(ordered) 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만 set 자료형은 순서가 없기(unordered) 때문에 인덱싱으로 값을 얻을 수 없다.

만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 다음과 같이 리스트나 튜플로 변환한후 해야 한다.