반응형
데이터 분석에 사용되는 것은 리스트뿐만이 아니다..! 예를들어 1반에 있는 학생 화니를 저장하고 싶다면?
1반 = "화니" 이런 식으로 변수에 할당해도 되지만
student = {
"1반" : "화니"
}
이런식으로 1대1 대응을 시켜서 값을 저장할 수도 있다.
오늘은 딕셔너리 자료형에 대해서 알아보자!
딕셔너리
딕셔너리 자료형은 말 그대로 사전형 자료형이다.
우리가 영어사전을 보면 단어와 뜻이 매칭되어서 쓰여있는데,
단어 = key , 뜻 = value 로 각각 대응된다고 보면 된다.
딕셔너리 자료형 = key - value 쌍으로 데이터를 저장하는 자료형!
딕셔너리 활용하기
my_dic = {
5: 25,
2: 4,
3: 9
}
print(type(my_dic)) # <class 'dict'>
값 조회하기
my_dic[key]
my_dic = {
5: 25,
2: 4,
3: 9
}
my_dic[3]
print(my_dic[3]) # 9
값 추가하기
my_dic[new_key] = new_value
my_dic[9] = 91
print(my_dic)
# my_dic = {
# 5: 25,
# 2: 4,
# 3: 9
# 9: 81 # 값이 새로 추가됨!
# }
사전의 key 데이터 타입으로는 반드시 정수일 필요는 없다!
목록 확인하기
my_dic.values()
my_dic = {
5: 25,
2: 4,
3: 9
}
print(5 in my_dic.values()) # False
# 반복문 활용
for value in my_dic.values():
print(value)
#25
#4
#9
키 받아오기
my_dic.keys()
my_dic = {
5: 25,
2: 4,
3: 9
}
for key in my_dic.keys():
print(key) # 키 목록들을 받아오기
키 & 값 받아오기
1. keys() 함수 이용
my_dic = {
5: 25,
2: 4,
3: 9
}
for key in my_dic.keys():
value = my_family[key]
print(key, value)
2. items() 함수 사용
my_dic = {
5: 25,
2: 4,
3: 9
}
for key, value in my_dic.items():
print(key, value)
# items() 함수를 쓰면 키&값을 한 번에 받아올 수 있음
활용
1. 키-값 뒤집기
# 언어 사전의 단어와 뜻을 서로 바꿔주는 함수
def reverse_dict(dict):
new_dict = {} # 새로운 사전
for key, value in dict.items():
new_dict[value] = key
# dict의 key와 value를 뒤집어서 new_dict에 저장
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))
2. 같은 것 개수 새기
# 투표 결과 리스트
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)
** in keyword의 for문에서의 활용과 list에서의 활용을 잘 알아두자!
조금 헷갈렸지만 그래도 아직까지는 무난무난하다! 3학년 짬을 그냥 먹은게 아닌거시다..! 후후... 파이팅!
2021-09-12
반응형
'Language > Python' 카테고리의 다른 글
8. 파이썬 모듈 (0) | 2021.09.13 |
---|---|
7. 파이썬 문자열 (0) | 2021.09.12 |
5. 파이썬 for 문 (0) | 2021.09.12 |
4. 파이썬 리스트 (0) | 2021.09.10 |
3. 파이썬 제어문 (0) | 2021.09.07 |