중복을 허용하지 않는다.
순서가 없다(Unordered).
중복을 허용하지 특징 때문에 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
값 1개 추가하기(add)
이미 만들어진 set 자료형에 값을 추가할 수 있다. 1개의 값만 추가(add)할 경우에는 다음과 같이 한다.
>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}
값 여러 개 추가하기(update)
여러 개의 값을 한꺼번에 추가(update)할 때는 다음과 같이 하면 된다.
>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}
특정 값 제거하기(remove)
특정 값을 제거하고 싶을 때는 다음과 같이 하면 된다.
>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1
{1, 3}
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 자료형에 저장된 값을 인덱싱으로 접근하려면 다음과 같이 리스트나 튜플로 변환한후 해야 한다.