Python | Set과 Dictionary의 차이

celeste·2022년 4월 3일
0

Replit) Python Basic

목록 보기
8/10
post-thumbnail

Set 과 Dictionary 의 차이 요약
1. set은 key값만 있지만 dictionary는 key,value 값이 있다.
2. dictionary는 key값은 immutalbe(변경할 수 없는) 형식이어야하고, value값은 mutable(변경가능) 형식도 가능하다.
3. set은 가변(mutable) 리스트형임.

Set

Set은 List의 칭구👯

List와 마찬가지로 여러 타입의 element들을 저장할 수 있다.

요소들이 순서대로 저장되어 있지 않아 indexing이 존재하지 않는다.

순서대로 저장되어 있지 않아 for문에서 읽어들일때 무작위 순서로 나온다.

동일한 값의 요소가 1개 이상 존재할 수 없다.

새로 저장하려는 값이 포함 되어있는 값이라면 새로운 요소가 이 전 요소를 치환한다.

문법

set을 생성하는 법

  • 중괄호 { } 사용
  • set()함수 사용
set = {12, 23, 31} # 변수를 set으로 지정할 때

set2 = set([12, 23, 31]) # set() 함수 사용

set() 함수를 사용해서 set을 만들기 위해서는 listparameter로 전달해야 하는데, 일반적으로 listset으로 변환하고 싶을때 사용한다.

ex) 중복된 값을 삭제할 때

set1 = {10, 20, 30, 30}

print(set1)

# output
{10, 20, 30}

set2 = set([10, 20, 30, 30])

print(set2)

# output
{10, 20, 30}

Set 관련 함수

add() 요소 추가

my_set = {10, 20, 30}
my_set.add(40)

print(my_set)

# output
{10, 20, 30, 40}

remove() 요소 삭제

my_set = {10, 20, 30}
my_set.remove(10)

print(my_set)

# output
{20, 30}

LookUp in 조건문에 쓰임

set에 어떠한 값이 포함되어 있는지 알아보는 함수
set에서 lookup을 사용하기 위해서는 in, not in 키워드를 같이 사용해야 한다.

my_set = {10, 20, 30}

if 20 in my_set:
	print("20 여기 있어!")

# output
20 여기 있어!


my_set = {10, 20, 30}

if 40 not in my_set:
	print("여기 40은 없어")
    
# output
40은 여기 없어

Intersection (교집합)

& 키워드 혹은 intersection 함수를 사용

set1 = {3, 4, 9, 1, 4, 2, 5, 6, 7, 8, 10}
set2 = {5, 6, 7, 8, 9, 10}

print(set1 & set2)

# output
{5, 6, 7, 8, 9, 10}

Union (합집합)

| 키워드 혹은 union 함수를 사용

set1 = {3, 4, 9, 1, 4, 2, 5, 6, 7, 8, 10}
set2 = {5, 6, 7, 8, 9, 10}

# '|' 키워드 사용시
print(set1 | set2)

# 'union' 함수 사용시
print(set1.union(set2))

# output
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

Dictionary

한 세트의 데이터를 적절하게 저장하려면 어떻게 해야할까?

my_list = ["고양이", "코리안숏헤어", "노트북", "맥북", "핸드폰", "아이폰"]

list로 저장한다면 이렇게 밖에 저장하지 못할 것이다.

'고양이'와 '코리안숏헤어'를 한 세트로 묶을 수 있는 자료구조가 바로 Dictionary이다.

중괄호 { } 를 사용해 dictionary를 선언한다.

keyvalue 의 값으로 이루어져 있고 key값 : value 값이 나온다.

각각의 key : value 들은 comma 로 구분한다.

Key는 String 뿐만이 아니라 숫자도 가능하다.

Key값은 중복될 수 없다.
이미 존재하는 key값이 또 추가 되면 기존의 key값의 요소를 치환한다.

문법

my_dict = { "key1" : "value1", "key2" : "value2"}

"고양이" : "코리안숏헤어", "노트북" : "맥북", "핸드폰" : "아이폰"

위의 세트는 Dictionary의 형태는 이렇게 적으면 된다.

my_dict = {"고양이" : "코리안숏헤어", "노트북" : "맥북", "핸드폰" : "아이폰"}

Dictionary 관련 함수

Dictionary에서 요소 읽어들이기

Dictionary에서 element를 읽어 들이는 법은 list와 유사하다.
list는 index값을 사용하는 반면 dictionary는 key값을 사용한다.

예를 들어, 앞서 선언한 my_dict에서 key값인 "고양이"를
읽어 들이고 싶을 때 my_dict["고양이"]를 작성한다.

Dictionary에서 요소 추가하기

my_dict["책"] = "점프 투 파이썬"

print(my_dict)
{"고양이" : "코리안숏헤어", "노트북" : "맥북", "핸드폰" : "아이폰", "책" : "점프 투 파이선"}

my_dict[ "newKey" ] = "newValue" 처럼 사용하면 된다.

Dictionary에서 요소 수정하기

요소 수정이 list와 유사하다. 차이점은 index가 아니라 key값을 사용 한다는 점.

my_dict = {"고양이" : "코리안숏헤어", "노트북" : "맥북", "핸드폰" : "아이폰", "책" : "점프 투 파이선"}

my_dict["핸드폰"] = "아이폰12proMax"

print(my_dict)

# output
{"고양이": "코리안숏헤어", "노트북": "맥북", "핸드폰": "아이폰12proMax"}

처음부터 비어있는 dictionary를 만든 다음 하나 하나씩 추가하는 것도 가능하다.

my_dict = {}
my_dict[Key] = Value
my_dict[Key2] = Value2

print(my_dict)

# output
{ "Key" : "Value", "Key" : "Value2"}

Dictionary에서 요소 삭제하기

요소 삭제 또한 list와 유사하다. del 변수[Key] 차이점은 index가 아니라 key값을 사용 한다는 점.

my_dict = {"고양이" : "코리안숏헤어", "노트북" : "맥북", "핸드폰" : "아이폰"}
del my_dict["노트북"]

print(my_dict)

# output
{'고양이': '코리안숏헤어', '핸드폰': '아이폰'}

한눈에 보는 자료구조 차이

0개의 댓글