TIL | 파이썬 기초 # 7

vel.Ash·2022년 3월 19일
0
post-thumbnail

사전(dictionary)

:key와 value 가 pair을 이룬다(키-값 쌍)

<예시>

my_dictionary = {  #사전 정의하기 
	5: 25,
	2: 4,
	3: 9,
}
print(my_dictionary[3])   # 3key의 값 가져오기 

# 값 추가하기 
my_dicionary[9] = 81
print(my_dicrionary)

# 정수가 키, 값 지정도 가능하다 
my_dictionary = {  
	"엄마": "김자옥",
	"아빠": "이석진",
	"아들": "이동민",
}
print(my_dictionary["아빠"])
9
{5: 25, 2: 4, 3: 9, 9: 81}
이석진

<사전과 리스트의 차이점>

-리스트는 순서대로 키가 정해짐
-사전은 키가 순서와 관계없음. 키가 정수일 필요가 없다!


사전 활용법

1.사전 내 값 확인, 키 확인

my_family = {  
	"엄마": "김자옥",
	"아빠": "이석진",
	"아들": "이동민",
	"딸": "이지영",
}

print(my_family.values())  # 사전 내 값 확인
print("이지영" in my_family.values())  # "이지영" 값이 사전내 있는지 확인

#키 목록 받아오기
print(my_family.key())
dict_values(["김자옥", "이석진", "이동민", "이지영"])
Ture 
dict_values(["엄마", "아빠", "아들", "딸"])

2.사전에 for문 활용하기

my_family = {  
	"엄마": "김자옥",
	"아빠": "이석진",
	"아들": "이동민",
	"딸": "이지영",
}

# 값 출력 
for value in my_family.values():
	print(value)

# 키 출력 
for key in my_family.keys():
	print(key)

# 키와 값 동시출력
for key, value in my_family.items():
	print(key, value)
김자옥
이석진
이동민
이지영
엄마
아빠
아들
딸
엄마 김자옥
아빠 이석진
아들 이동민
딸 이지영 

사전 뒤집기

# 언어 사전의 단어와 뜻을 서로 바꿔주는 함수
def reverse_dict(dict):
    new_dict = {}  # 새로운 사전
    for key, value in vocab.items(): # dict의 key와 value를 뒤집어서 new_dict에 저장
        new_dict[value] = key
    return new_dict  # 변환한 새로운 사전 리턴

# 영-한 단어장
vocab = {
    'sanitizer': '살균제',
    'ambition': '야망',
    'conscience': '양심',
    'civilization': '문명',
    'privilege': '특권',
    'principles': '원칙'
}

# 기존 단어장 출력
print("영-한 단어장\n{}\n".format(vocab))

# 변환된 단어장 출력
reversed_vocab = reverse_dict(vocab)
print("한-영 단어장\n{}".format(reversed_vocab))
-한 단어장
{'sanitizer': '살균제', 'ambition': '야망', 'conscience': '양심', 'civilization': '문명', 'privilege': '특권', 'principles': '원칙'}-영 단어장
{'살균제': 'sanitizer', '야망': 'ambition', '양심': 'conscience', '문명': 'civilization', '특권': 'privilege', '원칙': 'principles'}

투표 집계하기

# 투표 결과 리스트
votes = ['김영자', '강승기', '최만수', '김영자', '강승기', '강승기', '최만수', '김영자', \
'최만수', '김영자', '최만수', '김영자', '김영자', '최만수', '최만수', '최만수', '강승기', \
'강승기', '김영자', '김영자', '최만수', '김영자', '김영자', '강승기', '김영자']

# 후보별 득표수 사전
vote_counter = {}

# 리스트 votes를 이용해서 사전 vote_counter를 정리하기
for name in votes:
    if name not in vote_counter:
        vote_counter[name] = 1
    else:
        vote_counter[name] += 1

# 후보별 득표수 출력
print(vote_counter)
{'김영자': 11, '강승기': 6, '최만수': 8}
profile
코린이의 개발공부

0개의 댓글