[Python] 09.사전(Dictionary)

사전 선언 방법 - 1

컬렉션중 사전을 만드는 방법입니다. 사전은 : 방식의 선언 방법입니다. {}(중괄호)문으로 시작합니다.

그리고 key:value방식으로 항목을 만듭니다.

 

사용방법

사전명 = {":",":",":",":"}

 

▶︎ 예제 코드

코드 :
grocery = {"TV": 1, "냉장고": 12, "오디오": 2}
print(grocery)

결과 :
{'TV': 1, '냉장고': 12, '오디오': 2}

 

사전선언방법 - 2

, 방식의 다른 선언 방식입니다.

 

▶︎ 사용방법

사전명 = {}

사전명[""] =

 

▶︎ 예제 코드

코드 :
animals = {}
animals["고양이"] = 2
animals["강아지"] = 4
animals["거북이"] = 0

# 사전 갯수를 출력합니다.
print(len(animals))

# 사전안의 키:값을 모두 출력합니다.
print(animals)

# 특정키의 값을 변경합니다. 키 고양의 값을 변경합니다.
animals["강아지"] = 3

# 사전 갯수를 출력합니다.
print(len(animals))

# 사전안의 키:값을 모두 출력합니다.
print(animals)

결과 :
3
{'고양이': 2, '강아지': 4, '거북이': 0}
3
{'고양이': 2, '강아지': 3, '거북이': 0}

 

사전에서 - 제거

사전에서 특정 키를 제거합니다.

 

▶︎ 사용방법

사전명.pop("")

del 사전명['']

 

▶︎ 예제 코드

코드 : 
household = {"TV": 4, "냉장고": 2, "오디오": 1, "에어컨": 2}
print(household)
removed = household.pop("에어컨")
print(household)

# 키:값이 아닌 키의 값이 출력됨.
print(removed)

# poo대신 del을 사용해도 삭제 가능
del household["TV"]
print(household)

결과 :
{'TV': 4, '냉장고': 2, '오디오': 1, '에어컨': 2}
{'TV': 4, '냉장고': 2, '오디오': 1}
2
{'냉장고': 2, '오디오': 1}

 

사전에서 - 추가

사전에서 :값을 추가하는 방법입니다.

 

▶︎ 사용방법

사전명['']=

 

▶︎ 예제 코드

코드 : 
household = {"TV": 4, "냉장고": 2, "오디오": 1, "에어컨": 2}

# 추가하기전에 출력
print(household)

# 추가후 출력
household['온열기']=5
household['전자레인지']=6
print(household)

결과 :
{'TV': 4, '냉장고': 2, '오디오': 1, '에어컨': 2}
{'TV': 4, '냉장고': 2, '오디오': 1, '에어컨': 2, '온열기': 5, '전자레인지': 6}

 

 

사전에서 에러없이 가져오기

사전에서 존재하지 않는 키값을 처리할 에러가 발생합니다. 이때 메소드 get 이용하면 에러없이 none으로 출력됩니다.

 

▶︎ 사용방법

변수명[''] : 시스템 에러 발생

변수명.get('') : none이란 메세지로 출력

 

▶︎ 예제 코드

코드 :
animals = {"강아지": 1, "고양이": 4, "거북이": 2}

# none이란 메세지로 출력
print(animals.get('호랑이'))

# 시스템 에러 발생 
print(animals['호랑이'])

결과 :
첫번째 프린트시
None

두번째 프린트시
시스템 에러.

 

 

사전 병합

2개의 사전을 하나로 병합합니다. 병합 대상으로 원본을 업데이트 합니다. 업데이트 항목이 없다면 추가를 합니다.

 

▶︎ 사용방법

사전명.update(사전)

 

▶︎ 예제 코드

코드 :
a={'a':1,'b':2,'c':3}
b={'a':2,'d':4,'e':5}

# b의 값으로 a업데이트. 없는 값은 추가
a.update(b)
print(a)

결과 :
{'a': 2, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

 

 

 

사전내용 클리어

사전내용을 지웁니다.

 

▶︎ 사용방법

사전명.clear()

 

▶︎ 예제 코드

코드 : 
a={'a':1,'b':2,'c':3}
print(a)
a.clear()
print("값 : ",a)

결과 :
{'a': 1, 'b': 2, 'c': 3}
값 :  {}

 

 

, 불러오는 다양한 방법

키와 값을 불러오는 여러가지 다양한 방법입니다.

 

▶︎ 예제 코드

• 예제 1 : 한번에 출력하기
메소드 : 사전명.keys()

코드 :
electronics = {"tv": 3, "refrigerator": 5, "computer": 4}
print(electronics.keys())

결과 :
dict_keys(['tv', 'refrigerator', 'computer'])

• 예제 2 : 키의 값들 출력
코드 :
electronics = {"tv": 3, "refrigerator": 5, "computer": 4}
print(electronics.values()) 

결과 :
dict_values([3, 5, 4])


• 예제 3 : 키만 출력하기(list를 이용하여)
코드 :
electronics = {"tv": 3, "refrigerator": 5, "computer": 4}
print(list(electronics.keys()))

출력 : 위와 비교하면 dict_keys는 출력안됨. 순수하게 key만 출력.
['tv', 'refrigerator', 'computer']


• 예제 4 : 값만 출력하기(list를 이용하여)
코드 :
electronics = {"tv": 3, "refrigerator": 5, "computer": 4}
print(list(electronics.values()))

출력 : 위와 비교하면 dict_values는 출력안됨. 순수하게 value만 출력.
[3, 5, 4]

• 예제 5 : 값만 출력하기(list를 이용하여)
코드 :
electronics = {"tv": 3, "refrigerator": 5, "computer": 4}
print(list(electronics.items()))

출력 : 키와 값 모두 출력
[('tv', 3), ('refrigerator', 5), ('computer', 4)]


• 예제 6 : for를 이용하여 키를 하나씩 출력하기(루핑)
코드 :
electronics = {"tv": 3, "refrigerator": 5, "computer": 4}

for one_elec in electronics.keys():
    print(one_elec)

결과 :
tv
refrigerator
computer

 

사전 다중값 할당 출력 방법

사전의 키에는 여러 값을 입력할 있습니다.

 

▶︎ 사용방법

사전명[""]=[1,2...]

 

▶︎ 예제 코드

코드 :
per_info = {}
per_info["민수"] = [170,70]
per_info["혜미"] = [160,50]
print(per_info.keys())
print(per_info.values())
print(per_info.items())
print(list(per_info.keys()))
print(list(per_info.values()))
print(list(per_info.items()))

결과 :
dict_keys(['민수', '혜미'])
dict_values([[170, 70], [160, 50]])
dict_items([('민수', [170, 70]), ('혜미', [160, 50])])
['민수', '혜미']
[[170, 70], [160, 50]]
[('민수', [170, 70]), ('혜미', [160, 50])]

 

사전의 다중값 출력 연산(for 이용하여)

사전의 다중값들을 다양한 출력예제로 확인해 봅니다.

 

▶︎ 예제 코드

코드 : 키의 값들 출력
grades = {}
grades["프랭크"] = [100,70]
grades["토비"] = [90,100]
grades["도남"] = [80,40]
grades["제이스"] = [70,70]

# 사전안의 키값들을 출력합니다.
for student in grades.keys():
    print(student)

# 사전안의 값들을 가져옵니다. 값을 더한후 그 값을 2로 나눕니다.
for quizzes in grades.values():
    print(sum(quizzes)/2)

# for를 이용하여 사전안의 키를 하나 가져온 후(student) 사전의 특정 키를 가져옵니다(grades[student]).
# 그리고 그 키값을 score 변수에 저장합니다. 평균값(sum(scores)/2)을 계산하고 그 값을 
# 사전의 특정키에 추가합니다(grades[student].append).
for student in grades.keys():
    scores = grades[student]
    grades[student].append(sum(scores)/2)

# 모든 값 출력
print(grades)

결과 :
프랭크
토비
도남
제이스
85.0
95.0
60.0
70.0
{'프랭크': [100, 70, 85.0], '토비': [90, 100, 95.0], '도남': [80, 40, 60.0], '제이스': [70, 70, 70.0]}

 

 

빈도수 계산

사전 항목중에서 해당 문자열이 몇번이나 반복되는지 확인.

 

▶︎ 사용방법

for 누적카운트 변수를 이용하여 확인.

 

▶︎ 예제 코드

코드 :
birthday_song = "Happy birthday to you Happy birthday to you Happy birthday dear My Friend Happy birthday to you"
counts = {}
words = birthday_song.split(" ")
for i in words:
    i = i.lower()
    if i not in counts:
        counts[i] = 1
    else:
        counts[i] += 1
        
print(counts)

결과 :
{'happy': 4, 'birthday': 4, 'to': 3, 'you': 3, 'dear': 1, 'my': 1, 'friend': 1}

 

 

사전의 항목 제거시 유의사항

이터레이션중 크기 변경되면 에러가 발생됩니다.

 

▶︎ 예제 코드

코드 :
songs = {"Wannabe": 1, "Roar": 1, "Let It Be": 5, "Red Corvette": 4}

for s in songs.keys():
    if songs[s] == 1:
        songs.pop(s)

결과 :
RuntimeError: dictionary changed size during iteration

 

 

■ 파이선 다른 회차

[Python] Intro : Very Quick Python : https://myinfrabox.tistory.com/169

 

[Python] Intro : Very Quick Python

개인적으로 공부하면서 정리해 놓은 파이선 자료를 업로드합니다. 여기의 내용은 문법에 대한 자세한 설명은 생략합니다. 개발 경험이 있는 분들에게 굳이 문법에 대한 자세한 설명은 필요없으

myinfrabox.tistory.com

[Python] 01.Python 준비 : https://myinfrabox.tistory.com/170

 

[Python] 01.Python 준비

파이선을 처음 접할때 콘솔로 프로그래밍하기 보다는 편리한 IDE툴을 이용해서 접해보기를 권합니다. 보통 프로그래밍을 처음 배울때 날(raw)코딩으로 처음 접하기를 권하고 저또한 마찬가지이

myinfrabox.tistory.com

[Python] 02.Python 스크립트 작성 방법 : https://myinfrabox.tistory.com/171

 

[Python] 02.Python 스크립트 작성 방법

리눅스, 유닉스에서 파이선을 실행시 맨위에 스크립트 종류를 선언합니다. 물론 선언하지 않고도 수행은 가능합니다. 그러나 리눅스, 유닉스에서 실행되는 대부분의 스크립트는 맨위에 특정 스

myinfrabox.tistory.com

[Python] 03.변수 선언 할당 : https://myinfrabox.tistory.com/172

 

[Python] 03.변수 선언 및 할당

1. 변수 할당 파이선에서 변수할당은 다른 스크립트 언어(php, shell script)처럼 특정 스트링을 입력 후 값을 할당합니다. 좌측은 변수명, 우측은 값을 입력합니다. 또한 변수명은 숫자로 시작할 수

myinfrabox.tistory.com

[Python] 04.문자열 처리 : https://myinfrabox.tistory.com/173

 

[Python] 04.문자열 처리

■ 문자열 인덱스 스트링으로 값을 받을때는 자동으로 인덱스 처리가 됩니다. 스트링 인덱스는 0부터 시작되며 끝에서 읽어올 시 -1부터 시작합니다. ▶︎ 사용방법 변수명[1] : 특정 인덱스에 값

myinfrabox.tistory.com

[Python] 05.조건문 : https://myinfrabox.tistory.com/174

 

[Python] 05.조건문

■ 조건문이 참 혹은 거짓일경우. 조건문의 True, False에 따라 그에 맞는 분기를 실행합니다. ▶︎ 사용방법 if 조건문: ▶︎ 예제 코드 코드 : num_a = 2 if num_a > 0: print("num_a가 0보다 큽니다") else: pr..

myinfrabox.tistory.com

[Python] 06.반복문 : https://myinfrabox.tistory.com/175

 

[Python] 06.반복문

■ for문 시퀀스의 모든 요소가 처음부터 마지막 수행될때까지 계속 반복힙ㄴ;디/ ▶︎ 사용방법 for <루프변수> in <튜플, 리스트등의 시퀀스>: ▶︎ 예제 코드 • 예제 1 : 시퀀스의 부분을 순서대

myinfrabox.tistory.com

[Python] 07.튜플(Tuple) : https://myinfrabox.tistory.com/176

 

[Python] 07.튜플(Tuple)

■ 튜플 뒤에서 배울 리스트와 비슷합니다. 데이터를 열거하는 식으로 만듭니다. ()안에 데이터를 열거합니다. 튜플의 특징은 tuple = (1,)처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를

myinfrabox.tistory.com

[Python] 08.리스트(List) : https://myinfrabox.tistory.com/177

 

[Python] 08.리스트(List)

■ 리스트 선언 리스트를 선언하는 방법입니다. ▶︎ 사용방법 기본적으로 []를 사용해서 선언합니다. ["리스트요소","리스트요소","리스트요소","리스트요소"] ▶︎ 예제 코드 strlist = ["TV","냉장

myinfrabox.tistory.com

[Pytho] 10.set : https://myinfrabox.tistory.com/179

 

[Pytho] 10.set

□ set이란? 키만 활용하는 데이터 구조로 이해합니다. 수학에서 집합과 동일한 개념입니다. ■ set 선언 방법 set을 선언하는 방법입니다. ▶︎ 사용방법 set변수 = {항목1, 항목2, ....} ▶︎ 예제 코

myinfrabox.tistory.com

[Python] 11.함수(Function) : https://myinfrabox.tistory.com/180

 

[Python] 11.함수(Function)

□ 사전 습득 지식 : 독 스트링(주석 묶기) 함수에는 보통 함수 명세서라 부르는 주석이 있습니다. 이곳에는 함수의 사용방법, 파라미터등을 설명합니다. 의무는 아니지만 팀으로 개발하는 소스

myinfrabox.tistory.com

[Python] 12.클래스(Class) : https://myinfrabox.tistory.com/181

 

[Python] 12.클래스(Class)

□ 클래스 파이선을 이용하여 클래스를 만들 수 있습니다. 다른 객체지향 언어와 거의 비슷합니다. 클래스를 만들고 객체로 선언하여 사용합니다. 그리고 객체의 메소드를 호출해서 사용합니다

myinfrabox.tistory.com

[Python] 13.외부 클래스 사용하기 : https://myinfrabox.tistory.com/182

 

[Python] 13.외부 클래스 사용하기

□ 외부 클래스 사용하기 파이선에도 여러가지 유용한 클래스를 제공합니다. 수학, 스트링, 랜덤수, 시간등등 여러가지 외부에서 임포트해서 유용하게 사용할 수 있는 여러 클래스를 제공합니

myinfrabox.tistory.com

[Python] 14.파일처리 : https://myinfrabox.tistory.com/183

 

[Python] 14.파일처리

□ 파일처리 파일을 생성, 수정, 읽기를 하는 방법을 알아봅니다. ■ 파일 생성. 신규 파일을 생성합니다. 만약 기존 파일이 있을시 덮어씁니다. 파일을 생성하고 그 파일안에 내용을 작성할 수

myinfrabox.tistory.com

[Python] 15.MySQL Database : https://myinfrabox.tistory.com/184

 

[Python] 15.MySQL Database

□ MySQL데이터베이스 사용방법 MySQL 데이터베이스에 대해 사용방법을 알아봅니다. DB생성, 테이블 생성-삭제, DML문법을 알아봅니다. ■ 데이터 베이스 사용을 위한 환경설정. 파이선에서 MySQL데이

myinfrabox.tistory.com

 

'Develop > Python' 카테고리의 다른 글

[Python] 11.함수(Function)  (0) 2020.12.30
[Pytho] 10.set  (0) 2020.12.30
[Python] 08.리스트(List)  (0) 2020.12.30
[Python] 07.튜플(Tuple)  (0) 2020.12.30
[Python] 06.반복문  (0) 2020.12.30

Designed by JB FACTORY