728x90
반응형
SMALL
1. 딕셔너리(Dictionary)
- <class 'dict'>
- 대응관계를 나타내는 자료형으로 key와 value라는 것을 한 쌍으로 갖는 형태
- 하나의 딕셔너리의 key는 중복될 수 없음
- 하나의 딕셔너리의 value는 중복될 수 있음
1-1. 딕셔너리 만들기
변수 = {key1:value1, key2:value2, ...}
# 빈 딕셔너리 생성
dic1 = {}
print(dic1)
>>> {}
print(type(dic1))
>>> <class 'dict'>
# key와 value값으로 딕셔너리 만들기
dic2 = {1:'김사과', 2:'반하나', 3:'오렌지', 4:'이메론'}
print(dic2)
>>> {1: '김사과', 2: '반하나', 3: '오렌지', 4: '이메론'}
# value값에 여러 요소를 담을 때는 대괄호로 감쌈
dic4 = {'num':[1,2,3,4], 'user_id':['apple','banana'], 'name':['김사과','반하나'], 'hp':['010-1111-1111', None]}
print(dic4)
>>> {'num': [1, 2, 3, 4], 'user_id': ['apple', 'banana'], 'name': ['김사과', '반하나'], 'hp': ['010-1111-1111', None]}
1-2. key를 통해 value값 찾기
dic2 = {1:'김사과', 2:'반하나', 3:'오렌지', 4:'이메론'}
print(dic2[1]) # index번호가가 아닌 key
>>> 김사과
print(dic2[4])
>>> 이메론
# key값이 문자열일 경우
dic3 = {'num':1, 'user_id':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
print(dic3['num'])
>>> 1
print(dic3['user_id'])
>>> apple
print(dic3['hp'])
>>> 010-1111-1111
1-4. 딕셔너리의 데이터 추가 및 삭제
1) 데이터 추가
- key의 데이터는 중복을 허용하지 않음
- value값은 중복 허용
dic4 = {1:'apple'}
print(dic4)
>>> {1: 'apple'}
dic4[100] = 'apple'
print(dic4)
>>> {1: 'apple', 100: 'apple'} # value는 중복 가능
dic4[50] = 'melon'
print(dic4)
>>> {1: 'apple', 100: 'apple', 50: 'melon'}
2) 데이터 삭제
- key값으로 value 데이터를 삭제
- del
- pop()
dic4 = {1: 'apple', 100: 'apple', 50: 'melon'}
# del 사용
del dic4[1]
print(dic4)
>>> {100: 'apple', 50: 'melon'}
# pop 사용
dic4.pop(100)
print(dic4)
>>> {50: 'melon'}
2. 딕셔너리 함수
2-1. keys()
- key값을 리스트로 반환
dic3 = {'num':1, 'user_id':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
print(dic3.keys())
>>> dict_keys(['num', 'user_id', 'name', 'hp'])
2-2. values()
- value값을 리스트를 반환
dic3 = {'num':1, 'user_id':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
print(dic3.values())
>>> dict_values([1, 'apple', '김사과', '010-1111-1111'])
2-3. items()
- key와 value를 한 쌍으로 묶는 튜플을 반환
dic3 = {'num':1, 'user_id':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
print(dic3.items())
>>> dict_items([('num', 1), ('user_id', 'apple'), ('name', '김사과'), ('hp', '010-1111-1111')])
2-4. get()
- get(key, key값이 존재하지 않을 경우 대체할 값)
- key를 이용해서 value값을 반환
- 존재하지 않는 key 값 입력 시 None을 반환
dic3 = {'num':1, 'user_id':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
# key를 통해 value값 반환
print(dic3['user_id'])
>>> apple
print(dic3['age'])
>>> KeyError: 'age'
# get()을 통한 value값 반환
print(dic3.get('user_id'))
>>> apple
print(dic3.get('age'))
>>> None # None도 객체: 없다라는걸 알려주는 객체
print(dic3.get('age', '나이를 알 수 없음'))
>>> 나이를 알 수 없음
2-5. in
- 파이썬 기본함수
- key가 딕셔너리 안에 있을 경우 True, 없을 경우 False를 반환
dic3 = {'num':1, 'user_id':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
print('name' in dic3)
>>> True
print('age' in dic3)
>>> False
3. 반복문을 이용한 딕셔너리 활용
- 반복문을 통해 key값을 출력해보자.
dic3 = {'num':1, 'user_id':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
# 키값만 복사됨
# 첫번째 방법
for i in dic3:
print(i)
>>>
num
user_id
name
hp
# 두번째 방법
for i in dic3.keys():
print(i)
- 반복문을 통해 value값만 출력해보자.
# value값만 복사
# 첫번째 방법
for i in dic3.values():
print(i)
>>>
1
apple
김사과
010-1111-1111
# 두번째 방법
for i in dic3: # key값만 복사
print(dic3[i]) # key값을 이용한 value 값
>>>
1
apple
김사과
010-1111-1111
# 세번째 방법, get()
for i in dic3:
print(dic3.get(i))
>>>
1
apple
김사과
010-1111-1111
- 반복문과 조건문을 통해 각 key값을 순회하면서 key에 해당하는 값 중 'apple'이 있는지 확인해보자.
dic3 = {'num':1, 'user_id':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
for i in dic3:
if dic3[i] == 'apple':
print('찾았습니다')
else:
print('찾지못함')
>>>
찾지못함
찾았습니다
찾지못함
찾지못함
728x90
반응형
LIST
'Python > Basic' 카테고리의 다른 글
[파이썬, Python] 함수 - 1️⃣ 사용자 정의 함수 (0) | 2023.03.09 |
---|---|
[파이썬, Python] 자료구조(Data Structure) - 4️⃣ 세트(set) (0) | 2023.03.08 |
[파이썬, Python] 제어문 - 2️⃣ 반복문(2)_다중반복문, 컴프리헨션(Comprehension) (0) | 2023.03.08 |
[파이썬, Python] 제어문 - 2️⃣ 반복문(1)_bool(), 대입연산자, while문, for in 문, zip함수, enumerate함수 (0) | 2023.03.08 |
[파이썬, Python] 제어문 - 1️⃣ 조건문_ if문, 삼항 연산자, 논리 연산자 (0) | 2023.03.07 |