Set은 list와 마찬가지로 여러 다양한 Type의 element들을 저장할 수 있다.
하지만 list와 다른 점들이 있다.
set은 중괄호('{ }')를 사용하는 방법과 set()함수를 사용하는 방법이 있다
set1 = {1, 2, 3}
set2 = set([1, 2, 3, 1])
print(set1)
# >> {1, 2, 3}
print(set2)
# >> {1, 2, 3}
set()은 함수이기 때문에 ()안에 인자값을 넣을 수 있다. 따라서 인자값을 list로 넣어 set으로 반환 받을 수 있다.
하지만, set은 고유값 존재하기 때문에, set2의 인자값 중 마지막 element는 기존 element에 치환이 된다.
Set에는 순서가 없고 고유값만 존재하기 때문에 list에서 사용했던 appen()함수는 의미가 없다. 따라서 add()라는 함수를 사용한다.
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)
# >> {1, 2, 3, 4}
Set에서 element를 삭제하기 위해서는 remove()함수를 사용한다
my_set = {1, 2, 3}
my_set.remove(3)
print(my_set)
# >> {1, 2}
set에 어떠한 값이 이미 포함되어 있는지를 알아보는 것을 look up이라고 한다
set에서 look up을 사용하기 위해서는 in키워드를 사용해야한다
my_set = {1, 2, 3}
if 1 in my_set:
print("1 is in the set")
## > 1 is in the set
if 4 not in my_set:
print("4 is not in the set")
## > 4 is not in the set
set은 교집합(Intersection)과 합집합(Union)을 구할수 있다.
set의 교집합을 구할때는 & 키워드 또는 intersection()함수를 사용한다
set1 = {1, 2, 3, 4, 5, 6}
set2 = {4, 5, 6, 7, 8, 9}
print(set1 & set2)
# >> {4, 5, 6}
print(set1.intersection(set2))
# >> {4, 5, 6}
set의 합집합을 구할 때는 | 혹은 union()함수를 사용한다.
print(set1 | set2)
# >> {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(set1.union(set2))
# >> {1, 2, 3, 4, 5, 6, 7, 8, 9}
왼쪽 상단의 get_unique_numbers_count 함수를 구현해주세요.
get_unique_numbers_count 함수는 numbers 라는 parameter를 받습니다.
numbers는 list 입니다. Numbers의 고유 값들의 수를 리턴해주면 됩니다.
예를 들어, 다음과 같은 input이 들어왔다면:
[1, 2, 1, 1, 3, 4, 5]
5를 리턴해주면 됩니다.
## My Solution
def get_unique_numbers_count(numbers):
new_tuple = set(numbers)
return len(list(new_tuple))
## Model Solution
def get_unique_numbers_count(numbers):
return len(set(numbers))