Python - Set

황인용·2019년 12월 12일
0

Python

목록 보기
21/44

Set

Set은 list와 마찬가지로 여러 다양한 Type의 element들을 저장할 수 있다.
하지만 list와 다른 점들이 있다.

  • list와 다르게 element들이 순서대로 저장되어 있지 않다. 즉, for문으로 읽어들일때 무작위로 element들을 읽게 된다.
  • 순서가 없으므로 indexing도 없다. 따라서 몇번째 element를 읽어들일수 없다
  • 동일한 값을 가지는 element가 1개 이상 가질 수 없다. 동일한 값이 있을 경우 하나의 값으로 치환된다(즉, 고유값만 존재)

Set 생성방법

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에서 element 추가하기

Set에는 순서가 없고 고유값만 존재하기 때문에 list에서 사용했던 appen()함수는 의미가 없다. 따라서 add()라는 함수를 사용한다.

my_set = {1, 2, 3}
my_set.add(4)
print(my_set)
# >> {1, 2, 3, 4}

Set에서 element 삭제하기

Set에서 element를 삭제하기 위해서는 remove()함수를 사용한다

my_set = {1, 2, 3}
my_set.remove(3)
print(my_set)
# >> {1, 2}

Look Up

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

Intersection (교집합) & Union (합집합)

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}

Assignment

왼쪽 상단의 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))
profile
dev_pang의 pang.log

0개의 댓글