본문 바로가기
Python

[Python 기초] 파이썬 자료형 - 딕셔너리(Dictionary) 함수 : keys(), values(), items() 와 in

by dev수니 2021. 4. 1.
반응형

 

 

 1  딕셔너리(Dictionary) 함수

 

 

1. keys() : key값만 다로 뽑아주는 함수

변수명.keys()
1
2
3
4
5
6
7
8
9
10
11
12
>>> language = {1:"python",2:"java",3:"c++"}
>>> print(language.keys())
dict_keys([123])
>>> keylist1 = language.keys()
>>> type(keylist1)
<class 'dict_keys'>
>>> keylist1[0
Traceback (most recent call last):
  File "<pyshell#9>", line 1in <module>
    keylist1[0]
TypeError: 'dict_keys' object is not subscriptable
>>> 
cs

 

줄4에서 keylist1에 키값들만을 저장해 주었는데 줄6에서 type확인 결과 dict_keys로 나타났다. 또한 줄7에서 keylist[0]을 호출한 결과 TypeError가 뜬다.

keys()함수는 key값을 리스트형태로 뽑아주긴 하지만 이를 클래스(객체)로 감싸준 상태이기 때문에 접근이 불가능하다.

 

따라서, 형변환을 통해 리스트형태로 사용해 줄 수 있다.

 

1
2
3
4
5
6
>>> keylist1 = list(keylist1)
>>> type(keylist1)
<class 'list'>
>>> keylist1[0]
1
>>>
cs

 

 

 

 

 

2. values() : value값만 따로 뽑아주는 함수

변수명.values()
1
2
3
>>> keylist2 = language.values()
>>> keylist2
dict_values(['python''java''c++'])
cs

 

 

 

 

 

3. items() : key와 value값을 같이 뽑아주는 함수

1
2
3
>>> language = {1:"python",2:"java",3:"c++"}
>>> language.items()
dict_items([(1'python'), (2'java'), (3'c++')])
cs

 

 

 

 

 

 

 2  명령어 in

 

key가 딕셔너리 안에 있는지 검사하는 명령어이다. 데이터가 있으면 true 없으면 false로 나타난다.

 

(key) in (dict)

 

1
2
3
4
5
>>> stulist = {"혜원":"010-1234-1234","민수":"010-2345-2345","영희":"010-3456-3456"}
>>> "혜원" in stulist
True
>>> "영철" in stulist
False
cs

 

in 명령어는 리스트와 튜플에서도 적용이 가능하다.

 

1
2
3
4
5
6
7
>>> list1 = [10,20,30]
>>> 10 in list1
True
>>> tuple1 = (1.1,2.2,3.3)
>>> 1.1 in tuple1
True
False
cs

 

 

 


 

 

Ex 예제.

 

 

1. input()을 이용하여 id와 pw를 저장하는 방법

1
2
3
4
5
id1 = input("id를 입력하세요>")
pw1 =  input("pw를 입력하세요>")
idlist1 = {id1 : pw1}
print("id>",id1)     # key값만 가져오기 위해서는 함수를 이용해야 한다.
print("pw>",idlist1[id1])
cs

* run 결과

id를 입력하세요>soonipy
pw를 입력하세요>1234
id> soonipy
pw> 1234
>>> 

 

 

 

 

2. 편의점에서 재고 관리를 수행하는 프로그램


# 판매하는 물건에 재고를 딕셔너리로 저장
# "coffee":7,"pen":3,"milk":1,"coke":4

# input 으로 필요한 재고 입력받음.
# 재고 개수 : **
# 재고 중에 사이다가 있니? true/false

1
2
3
4
5
store = {"coffee":7,"pen":3,"milk":1,"coke":4}
search = input("필요한 재고 입력>")
stock = store[search]
print(search,"재고 개수 :",stock)
print("재고 중에 사이다가 있니?","사이다" in store)
cs

* run 결과

필요한 재고 입력>coffee
coffee 재고 개수 : 7
재고 중에 사이다가 있니? False

 

 

 

 

 

3. 영어를 입력하면 한글로 답 출력


# 딕셔너리 animallist
# cat -> 고양이 출력
# rabbit
# dog
# bear
# sparrow가 사전에 있니? true/false

1
2
3
4
animallist = {"cat":"고양이","rabbit":"토끼","dog":"개","bear":"곰"}
input_animal = input("검색할 동물을 영어로 입력하세요>")
print(animallist[input_animal])
print("sparrow가 사전에 있니?","sparrow" in animallist)
cs

  * run 결과

검색할 동물을 영어로 입력하세요>rabbit
토끼
sparrow가 사전에 있니? False
반응형

댓글