사전(dictionary)

heehe·2023년 3월 1일
0

python

목록 보기
10/11
post-thumbnail

사전(dictionary)

key-value pair(키-값 쌍)

my_dictionary = {
    5: 25,
    2: 4,
    3: 9
}
print(my_dictionary[3]) # 3번 값 출력

# 추가
my_dictionary[9] = 81

리스트와 비슷해보이지만 차이가 있다. 사전의 키는 순서의 개념이 없으며, 정수형일 필요가 없다

문제 1

단어장 만들기
새로운 단어들 추가

# 1. 단어장 만들기
vocab = {
    "sanitizer": "살균제",
    "ambition": "야망",
    "conscience": "양심",
    "civilization": "문명"
}
print(vocab)


# 2. 새로운 단어들 추가
vocab["privilege"] = "특권"
vocab["principle"] = "원칙"
print(vocab)

사전 활용법

  1. 값만 출력
my_family = {
    '엄마': '김자옥',
    '아빠': '이석진',
    '아들': '이동민',
    '딸': '이지영'
}

print(my_family.values())
  1. 찾는 값 존재 확인
my_family = {
    '엄마': '김자옥',
    '아빠': '이석진',
    '아들': '이동민',
    '딸': '이지영'
}

print('이지영' in my_family.values())
  1. 반복문 출력
my_family = {
    '엄마': '김자옥',
    '아빠': '이석진',
    '아들': '이동민',
    '딸': '이지영'
}

for value in my_family.values():
    print(value)
  1. 키만 출력
my_family = {
    '엄마': '김자옥',
    '아빠': '이석진',
    '아들': '이동민',
    '딸': '이지영'
}

print(my_family.keys())
  1. 키 반복문 출력
my_family = {
    '엄마': '김자옥',
    '아빠': '이석진',
    '아들': '이동민',
    '딸': '이지영'
}

for key in my_family.keys():
    print(key)
  1. 응용 (키, 값)
my_family = {
    '엄마': '김자옥',
    '아빠': '이석진',
    '아들': '이동민',
    '딸': '이지영'
}

for key in my_family.keys():
    value = my_family[key]
    print(key,value)
    
# 다른 예 itmes 활용
for key,value in my_family.items():
    print(key,value)

문제 2

태호는 영어 단어 공부를 위해서 단어장 프로그램을 만들었습니다. 하지만 이번에는 영-한으로 공부하는 것이 아니라, 한-영으로 공부를 해 보고 싶습니다.

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

문제 3

파이썬 리스트 votes에는 성북구민들의 투표 결과가 저장되어 있습니다. 리스트 votes의 정보를 토대로, 사전 vote_counter에 후보별 득표수를 정리하는 것이 목표입니다.

# 투표 결과 리스트
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)
profile
성장하고픈 ISFJ

0개의 댓글