안녕하세요
지금까지 문자열 객체, 리스트 객체의 메소드와 파이썬 내장함수를 사용한 실습을 진행해 보았습니다.
이번 시간에는 사전형 객체의 메소드를 사용한 실습을 진행해 보도록 하겠습니다.
- 사전형 자료형 ?
https://lsh-story.tistory.com/24
※ 사전에 요소 추가하기
키:값 쌍으로 이루어진 순서가 없는 사전에는 인덱스가 아닌 키를 사용해 값에 접근합니다.
따라서 list 객체의 append 처럼 뒤에 추가한다거나 , index 처럼 특정 위치에 값을 할당할 수 없습니다.
dict['키']='값' 의 형태로 값을 추가할 수 있습니다.
dict_data={'이름':'이승혁','블로그':'티스토리'}
dict_data['언어']='파이썬'
print(dict_data)
리스트 두 개를 사용해 딕셔너리 만드는 방법입니다.
하나의 리스트를 키, 하나의 리스트를 값으로 구성합니다.
for문을 통해 키 리스트를 enumerate 함수를 사용해서 인덱스, 키 리스트의 값을 함께 추출합니다.
추출된 인덱스를 값 리스트에 적용하여 요소를 추출합니다.
사전 변수에 키 리스트 요소를 키, 값 리스트의 요소를 값으로 지정해 추가합니다.
key_list=['사과','배','바나나']
value_list=['apple','pear','banana']
dict_data={}
for idx,key in enumerate(key_list):
dict_data[key]=value_list[idx]
print(dict_data)
※ 사전의 특정 요소 값 변경하기
사전에 있는 요소의 값을 변경할 때는, 리스트의 방식과 비슷합니다.
사전형['키']='새로운값' 형태의 문법을 통해 변경합니다.
key_list=['사과','배','바나나']
value_list=['apple','pear','banana']
dict_data={}
for idx,key in enumerate(key_list):
dict_data[key]=value_list[idx]
dict_data['사과']='red'
print(dict_data)
※ del
특정 요소를 제거하는 방법은 del, 사전의 키를 이용해서 제거합니다.
print(dict_data)
del dict_data['사과']
print(dict_data)
※ clear
사전 객체는 남기고, 사전의 구성 요소를 모두 제거할때는
사전 객체의 clear 메소드를 사용합니다.
dict_data.clear()
print(dict_data)
※ keys
사전 객체의 구성요소 키:값 쌍에서 '키' 값만을 확인할 때, 사전 객체의 메소드 keys를 사용합니다.
key_list=['사과','배','바나나']
value_list=['apple','pear','banana']
dict_data={}
for idx,key in enumerate(key_list):
dict_data[key]=value_list[idx]
print(dict_data.keys())
print(type(dict_data.keys()))
dict_keys 클래스 자료형의 결과를 확인할 수 있습니다.
반복 가능(iterable) 객체로 for문의 반복문에도 사용할 수 있습니다.
for key in dict_data.keys():
print(key)
※ values
키만 뽑아봤으니 '값'만 뽑아낼 수도 있습니다.
사전 객체의 values 메소드를 사용합니다.
문법은 keys와 같습니다.
for value in dict_data.values():
print(value)
※ items
키, 값 두 개 모두 출력하기 위해서 items 메소드를 사용합니다.
items 메소드는 키와 값을 dict_itmes 객체로 반환해줍니다.
마찬가지로 반복 가능 객체로 for문을 통해서 사용할 수도 있습니다.
반복인자를 2개 부여하면 각각 키, 값이 할당되며, 1개 사용하면 키와 값을 튜플형으로 할당합니다.
item=dict_data.items()
print(item)
for i,j in item:
print('키 :',i,'| 값 :',j)
for item in item:
print(item)
※ in
사전에 키가 존재하는지 확인하는 방법은 in 연산자를 사용합니다.
in을 사용해 딕셔너리에 '키'로 존재한다면 True를 반환하고, 없으면 False를 반환합니다.
print('사과' in dict_data)
if '배' in dict_data:
print(dict_data['배'])
※ sorted
파이썬 내장함수 sorted()를 사용해 사전 자료를 정렬할 수 있습니다.
사전의 각 요소는 키:값 쌍으로 이루어져 있습니다.
sorted() 함수에 사전을 인자로 입력하면 사전의 키를 오름차순으로 정렬한 결과를 반환합니다.
sorted() 함수에 key 인자를 추가하면 사전을 다양한 형태로 정렬할 수 있습니다.
key 인자는 반드시 함수여야 합니다.
dict_data={'사과':'apple','배':'pear','오렌지':'orange','딸기':'strawberry',\
'수박':'watermelon','귤':'mandarin','바나나':'banana'}
def f1(x):
return x[0]
def f2(x):
return x[1]
print('키 오름차순 정렬 :',sorted(dict_data))
print('키 내림차순 정렬 :',sorted(dict_data,reverse=True))
print('\n기준 : 키\n키,값 튜플 오름차순 정렬 :',sorted(dict_data.items(),key=f1))
print('\n기준 : 값\n키,값 튜플 오름차순 정렬 :',sorted(dict_data.items(),key=f2))
key = f1 은 입력된 요소의 첫 번째 x[0]을 반환합니다.
따라서 key=f1 옵션은 첫 번째 인자인 키를 기준으로 오름차순 정렬을 하며
두번째 key=f2 옵션은 두 번재 인자인 값을 기준으로 오름차순 정렬을 한 결과를 반환합니다.
사전형, 딕셔너리 객체 메소드 실습을 진행해 보았습니다.
다음 시간에는 eval, lambda, map을 활용해 간편하게 코드를 작성하는
실습을 진행해 보도록 하겠습니다.
읽어주셔서 감사합니다.
'프로그래밍 > Python' 카테고리의 다른 글
Python-21) python read, readline, write, writelines : 파이썬 파일 쓰기, 파일 읽기 , python txt (0) | 2020.12.24 |
---|---|
Python 현재 디렉토리 확인하기 (3) | 2020.12.24 |
Python-20) python lambda, map, eval (0) | 2020.12.23 |
Python-19) 딕셔너리 기본값 : defaultdict, setdefault (0) | 2020.12.23 |
Python-17) list append, insert, del, remove, len, count : 리스트 객체 메소드, 리스트 메소드, 파이썬 마스터 (0) | 2020.12.21 |
Python-16) 리스트 인덱스, 추출, reverse : Python list , list 객체, 파이썬 리스트 (0) | 2020.12.15 |
Python-15) 문자 find, split , join , replace , sort : Python 문자열, 파이썬 문자열, 파이썬 정렬 (0) | 2020.12.14 |
Python-14) 문자열 공백 제거, 길이, 알파벳 확인, : Python strip, Python str, Python install (0) | 2020.12.13 |