[Python]_투표 집계하기

hanseungjune·2022년 6월 10일
0

Python

목록 보기
22/38

풀이

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

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

vote_counter['김영자'] = 0
vote_counter['강승기'] = 0
vote_counter['최만수'] = 0
# 리스트 votes를 이용해서 사전 vote_counter를 정리하기
for name in votes:
    # 코드를 작성하세요.
    vote_counter[name] += 1


# 후보별 득표수 출력
print(vote_counter)

일단 나는 후보군이 3명으로 좁혀져 있기 때문에, 객체 안에 사람이름을 키값으로 하여 value값을 0으로 초기화 시켜주었다.

그래서 반복문을 사용할 때, 해당 이름이 나오면 value 값을 1씩 증가시켜주는 코드를 짰다. 근데 내가 원하는 방식은 모범답안에 있었다.

모범 답안

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

not in 을 통하여 true와 false를 가려냈고, true인 경우에는 해당 이름이 키값으로 존재하지 않다는 이야기이기 때문에 해당 이름이 나오면 1로 지정해주고, 그 다음에 또 나오면 1씩 더해주는 것으로 출력할 수 있었다.

not inin 절대 까먹지 말자!

profile
필요하다면 공부하는 개발자, 한승준

0개의 댓글