Set은 list의 친척이다.
List와 마찬가지로 여러 다양한 타입의 요소(element)들을 저장할 수 있다.
List와 다른점은 다음과 같다.
set을 생성하는 법은 일반적으로 2가지가 있다.
set1 = {1, 2, 3} set2 = set([1, 2, 3])
set() 함수를 사용해서 set를 만들기 위해서는 list를 parameter로 전달해야 한다.
그러므로 일반적으로 set() 함수를 사용해서 set를 만드는 경우는 list를 set로 변환하고 싶을 때 사용한다.
중복된 값은 저장이 안된다.
set1 = {1, 2, 3, 1} print(set1) {1, 2, 3} set2 = set([1, 2, 3, 1]) print(set2) {1, 2, 3}
list는 append()로 새로운 요소를 추가했다.
그에 비해 set는 요소들이 순차적으로 저장되지 않는다.
그러므로 append라는 단어는 어울리지 않는다.
그래서 set에서는 add 라는 함수를 사용해서 새로운 요소를 추가합니다.
my_set = {1, 2, 3} my_set.add(4) print(my_set) {1, 2, 3, 4}
Set에서 요소를 삭제할때는 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 함수를 사용하면 된다.
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}
합집합은 | 키워드 혹은 union 함수를 사용하면 됩니다.
set1 = {1, 2, 3, 4, 5, 6} set2 = {4, 5, 6, 7, 8, 9} 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_set = set(numbers) return len(new_set)
Model soution
def get_unique_numbers_count(numbers): return len(set(numbers))