프로그래밍/Python

Python-18) python 딕셔너리 메소드 : dict keys, values, items

LeeSeunghyuk 2020. 12. 22. 15:23
반응형

안녕하세요

 

지금까지 문자열 객체, 리스트 객체의 메소드와 파이썬 내장함수를 사용한 실습을 진행해 보았습니다.

이번 시간에는 사전형 객체의 메소드를 사용한 실습을 진행해 보도록 하겠습니다.

 

- 사전형 자료형 ?

 

https://lsh-story.tistory.com/24

 

Python-5) tuple , list, dictionary : Python, Python 설치, 파이썬 마스터

안녕하세요 이승혁입니다. 이번 포스팅에서는 자료형인 튜플과 리스트, 그리고 사전형에 대해서 실습을 진행해보도록 하겠습니다. ㆍ list  리스트는 파이썬에서 가장 많이 활용되는 시퀀스 자

lsh-story.tistory.com

 


※ 사전에 요소 추가하기

 

     키:값 쌍으로 이루어진 순서가 없는 사전에는 인덱스가 아닌 키를 사용해 값에 접근합니다.

     따라서 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을 활용해 간편하게 코드를 작성하는

실습을 진행해 보도록 하겠습니다.

 

읽어주셔서 감사합니다.

 

반응형