파이썬 딕셔너리 #7

반영환·2023년 4월 29일

파이썬

목록 보기
7/17
post-thumbnail

파이썬 딕셔너리

딕셔너리 자료형은 말 그대로 사전형 자료형이다.

우리가 영어사전을 보면 단어와 뜻이 매칭되어서 쓰여있는데,
단어 = 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) # 키 목록들을 받아오기
 

키 & 값 받아오기

keys() 함수 이용

my_dic = { 
 5: 25, 
 2: 4, 
 3: 9 
}


for key in my_dic.keys(): 
  value = my_family[key] 
  print(key, value)

items() 함수 사용

my_dic = { 
 5: 25, 
 2: 4, 
 3: 9 
}

for key, value in my_dic.items(): 
	print(key, value) 
    
# items() 함수를 쓰면 키&값을 한 번에 받아올 수 있음

활용

키-값 뒤집기

# 언어 사전의 단어와 뜻을 서로 바꿔주는 함수 
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))
 

같은 것 개수 새기

# 투표 결과 리스트 
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)

2021-09-12

profile
최고의 오늘을 꿈꾸는 개발자

0개의 댓글