tuple_name = (a, b, c)
정보를 저장할 때 사용하는 자료형 중 하나
요소들을 저장할 때 사용 (list와 비슷)
소괄호(()
)를 사용하여 선언 (tuple_name = (a, b, c)
)
기본적인 logic
은 list
와 동일
리스트는 변경 가능 (mutable),
튜플은 변경 불가 (immutable)
set_name = {a, b, c}
다양한 타입의 elements를 저장하는 자료형 중 하나
요소들이 순서대로 저장되어 있지 않음 (순서대로 정돈되어 있는 list와의 차이점)
동일한 value의 element가 하나 이상 존재하지 않음
중괄호({}
) 이용
set함수(set()
) 이용
set_1 = {1, 2, 3}
set_2 = set([1, 2, 3])
위에서 알 수 있듯이, set함수(set()
)를 사용하면 list를 set으로 변경할 수 있다.
이 때 list에 중복된 value를 가진 element가 있다면 하나만 남게 된다.
.add()
)set.add()
.remove()
)set.remove()
교집합은 &
키워드 혹은 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
함수를 사용
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}
dictionary_name = {'key1' : 'value1', 'key2' : 'value2'}
정보들 간의 대응 관계를 표현하는 자료형 구조
dictionary_name = {'key1' : 'value1', 'key2' : 'value2'}
{}
를 사용해 dictionary를 선언한다.key
와 value
의 값으로 구성.key
값이 먼저 나온 후 :
이 위치하고 그 다음에 value
값이 나온다.key
: value
들은 ,
(comma) 로 구분한다.dictionary_name['key']
index
를 사용하여 value
를 확인하던 list, tuple, set과 달리,
dictionary는 각 value
에 할당된 key
값을 이용해 확인
info = {1 : 'one', 2 : 'two', 3 : 'three'}
print(info[3])
# Output
three
dictionary_name[new_key] = new_value
만약 동일한 값의 key
가 있다면, 새로 추가되는 element
가 이전 element
를 대체
dictionary_name[new_key] = new_value
key
값을 사용하여 element 수정
my_dict = { "one": 1, 2: "two", 3 : "three" }
my_dict["four"] = 4
print(my_dict)
> {'one': 1, 2: 'two', 3: 'three', 'four': 4
del dictionary_name[key] = value
del
문과 key
값을 사용하여 element 삭제
my_dict = { "one": 1, 2: "two", 3 : "three" }
del my_dict["one"]
print(my_dict)
> {2: 'two', 3: 'three'}
list → 대괄호([]
) 사용, 수정 가능, 순서 O, 중복 가능
tuple → 소괄호(()
) 사용, 수정 불가능, 순서 O, 중복 가능
set → 중괄호({}
) 사용, 수정 가능, 순서 X, 중복 불가
dictionary → 중괄호({}
) 사용, 수정 가능, 순서 O, key 중복 불가, element 중복 가능
내 개인적으로 정리하려고 TIL 작성하고 있었는데 프로젝트 과제가 이와 똑같은 것일줄을 몰랐다.
사람 생각하는건 다 비슷하다고 내가 중요하다고 생각하는거는 다른 사람도 중요하다고 여길 수 있나 보다.
명확히는 아니지만 이제는 어느정도 각 자료형들의 차이점을 설명할 수 있을 것 같다.
나름 잘 정리했다고 생각하고 했으니 이 페이지는 진짜 자주 봐야할 것 같다.
백엔드는 데이터, 즉 자료가 굉장히 중요한 분야이니 이런 자료형들이 괜히 세분화되지 않았을 거라는 느낌이 강하게 든다
참고
https://gmnam.tistory.com/170
https://wikidocs.net/16
https://specialscene.tistory.com/142