TIL #37 : [Python] set vs. dict, list vs. tuple

셀레스틴 허·2021년 1월 14일
0
post-thumbnail

set vs. dict

set


이미지 출처

  1. 동일한 요소가 없다. 또한 중복하는 요소를 넣을 수도 없다.
    --> 동일한 요소를 넣을 경우 전에 있던 요소를 replace한다.

예시)

old = [1, 2, 3, 4, 5, 1, 2, 3]
new = set(old)
print(new)

출력)

{1, 2, 3, 4, 5}
  1. set(), {} 를 이용해서 만들어진다
  2. 순서가 없다. 즉 순서 없는 data를 집어넣기 좋은 데이터 타입이다.
    --> 순서가 없으니 indexing 또한 불가능하다
  3. .add, .remove()로 요소 추가, 삭제 가능하다.
  4. 추가, 삭제는 가능하지만set() 안에 저장되어 있는 값을 변경할 수 없다.
  5. intersection, union함수로 교집합과 합집합을 구할 수 있다

dictionary


이미지 출처

  1. set()처럼 순서는 없지만 indexing이 가능하다. 값 수정이 가능하며 {}를 이용한다.
  2. key - value를 같이 저장하는 data type이다.
  3. dictionary 안에 있는 모든 key는 유니크(고유)하다
    --> 중복하는 key를 입력시 기존 key-value pair는 새로운 keyreplace 된다.

예시)

coding = {'hard' : 'worth it'}
coding['hard'] = 'totally!'
print(coding)

출력) 기존 value가 다른 value로 교체 된 것을 볼 수 있다

{'hard': 'totally!'}
  1. dictionary 또한 추가 삭제가 가능하다.

추가 예시)

coding = {'hard' : 'worth it'}
coding['difficult'] = 'challenging'
print(coding)

출력)

{'hard': 'worth it', 'difficult': 'challenging'}

삭제 예시)

coding = {'hard': 'worth it', 'difficult': 'challenging','easy' : 'genius'}
del coding['hard']
print(coding)

출력)

{'difficult': 'challenging', 'easy': 'genius'}
  1. keys(), values(), items(), clear(), get(x), x in dic를 이용해서 다양한 출력과 활용을 할 수 있다.

list vs. tuples

이미지 출처

list


  1. 순서가 있으며 값을 변경할 수 있다.
    --> indexing 사용 가능
    예시)
# 제 키를 수정해 보겠습니다
minji = [158, '백오십팔']
minji[0] = 157.5
minji[1] = '반올림금지'
print(minji)

출력)

# 다들 반올림 하면서...
[157.5, '반올림금지']
  1. 여러 데이터 타입을 리스트 안에 넣을 수 있다. (int, str, bool)
  2. 값 변경이 가능한 만큼 메모리를 더 차지한다.
  3. []을 사용한다.
  4. 슬라이싱, 반복, 수정, 추가, 삭제 모두 가능하다.

tuples


  1. 순서가 있으며 값을 변경할 수 없다.
    --> indexing 사용 가능!
    --> 값 변경 시도할 시 TypeError: 'tuple' object does not support item assignment가 나올 것이다.
  2. 리스트보다 메모리를 덜 차지한다.
  3. ()을 사용한다. 하지만 소괄호 없이 값 사이에 ,만 써도 튜플로 인식한다.

예시)

tuple = (1, 2, 'blue')
new_tuple = 1, 2, 'blue'
  1. 인덱싱, 슬라이싱 가능하다.

Reference:
https://dev.to/arvindmehairjan/what-are-the-differences-between-a-list-tuple-dictionary-set-in-python-2lm6
https://m.blog.naver.com/PostView.nhn?blogId=pgh7092&logNo=221103514790&proxyReferer=https:%2F%2Fwww.google.com%2F

profile
Software Developer / 고통은 필연, 괴로움은 선택

0개의 댓글