728x90
튜플과 딕셔너리 둘다 리스트와 같은 형태로 자료를 저장한다. 튜플의 특징부터 알아보자.
튜플의 특징을 알아보자!
- 튜플은 괄호 () 를 이용하여 요소를 감싼다.
- 튜플은 고정된 값을 가진다.(immutable)
- 튜플이 생성되면 값이 고정되므로 변경이나 삭제가 불가능 하다.
- 고정할 리스트를 저장하는 용도로 사용(dictionary key로 사용가능)
- list 보다 순회속도가 빠르다.
- 값을 변경하거나 수정하는 것만 아니면 리스트와 동일하게 사용가능
아래의 예시를 보며 이해해 보자.
tup = (1,3,5,7,9)
a = ()
b = (1,2,3)
c = ("hello", "list", "test")
d = (2,3,["hello", "test"])
print(tup)
print(a)
print(b)
print(c)
print(d)
실행결과 ↓
(1, 3, 5, 7, 9)
()
(1, 2, 3)
('hello', 'list', 'test')
(2, 3, ['hello', 'test'])
튜플의 형식은 이렇게 표현하고 사용 할 수 있다. 다음은 튜플 특징의 예를 보자.
tup = (1,3,5,7,9)
tup[1] = 10
위의 코드처럼 튜플형식의 데이터에 인덱스번호를 이용해 값을 바꾸려고 한다. 실행을 하면!
이렇게 타입에러가 발생한다. 튜플 형식은 데이터를 바꿀 수 없다!
딕셔너리의 특징을 알아보자!
- 데이터를 순차적으로 저장하지 않고 key : item 을 매핑해 저장
- 딕져너리는 대괄호 { } 를 이용해 표현
- 대괄호 안에 : 를 이용해 키와 값을 구분 { key : item }
dic1 = {"실" : "바늘", "cafe" : "coffee", "hi" : "안녕"}
print(dic1)
print(dic1.get("실")) # .get("실") -> 키값 "실" 에 해당하는 아이템을 불러온다.
dic1.__setitem__("실", "골무") # __setitem__ -> 키값 "실" 의 아이템을 "골무" 로 바꾼다.
print(dic1.get("실")) # 아이템이 바뀐것을 확인 할 수 있다.
print(dic1)
실행결과 ↓{'실': '바늘', 'cafe': 'coffee', 'hi': '안녕'}
바늘
골무
{'실': '골무', 'cafe': 'coffee', 'hi': '안녕'}
더 많은 딕셔너리의 예를 보자.
# 딕셔너리의 키/값 쌍 추가하기
# 딕셔너리이름[KEY] = value
dic1 = {1 : "a"}
print(dic1[1]) # dic1의 키 1 을 출력 =====> a
dic1[3] = "c" # 딕셔너리 dic1에 키값 3, value "c" 의 쌍을 를 추가
print(dic1[3]) # dic1의 키 3 을 출력 =====> c
dic1["b"] = 2 # 딕셔너리 dic1에 키값 "b", value 2 의 쌍을 를 추가
print(dic1["b"]) # dic1의 키 "b" 을 출력 =====> 2
print(dic1) # {1: 'a', 3: 'c', 'b': 2}
# 딕셔너리 값 삭제하기
# del 삭제할 key
# __delitem__(key)
dic2 = {1 : "a", 2 : "b", 3 : "c"}
print(dic2) # {1: 'a', 2: 'b', 3: 'c'}
del dic2[2] # key값 2 삭제
print(dic2) # {1: 'a', 3: 'c'}
dic2.__delitem__(3) # key값 3 삭제
print(dic2) # {1: 'a'}
# key(), values()
# key() = key리스트 얻기
# values() = value리스트 얻기
dic3 = {1 : "a", 2 : "b", 3 : "c", 4 : "d", 5 : "e"}
key_list = dic3.keys()
value_list = dic3.values()
print(key_list) # dict_keys([1, 2, 3, 4, 5])
print(value_list) # dict_values(['a', 'b', 'c', 'd', 'e'])
728x90
'Python 파이썬' 카테고리의 다른 글
파일 입출력(File I/O) (0) | 2023.10.20 |
---|---|
셋(set) (1) | 2023.10.20 |
난수(random), 로또번호, 랜덤모듈 (1) | 2023.10.16 |
리스트(list)_2, 리스트빌트인 함수 (0) | 2023.10.16 |
리스트(list) (0) | 2023.10.16 |