본문 바로가기
Pythonic

[파이썬을 파이썬답게] 가장 많이 등장하는 알파벳 찾기

by YGSEO 2021. 3. 8.
728x90

my dirty code with for x 2

from collections import Counter
my_str = input().strip()
c = Counter(my_str).most_common()
max_num = 0
for k, v in c:
  if v > max_num:
    max_num = v

res = ""
for k, v in c:
  if v == max_num:
    res+=k

print("".join(sorted(res)))
import collections
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 7, 9, 1, 2, 3, 3, 5, 2, 6, 8, 9, 0, 1, 1, 4, 7, 0]
answer = collections.Counter(my_list)

print(answer[1]) # = 4
print(answer[3])  # = 3
print(answer[100]) # = 0
print(answer)

# output
# 4
# 3
# 0
# Counter({1: 4, 2: 3, 3: 3, 7: 3, 4: 2, 5: 2, 6: 2, 8: 2, 9: 2, 0: 2})

answer의 key index에 찾고자 하는 수를 넣으면 해당 수(key)의 value를 return

100은 없으므로 0을 return

 

만약 아래코드 처럼 Counter 메서드말고 직접 dict을 만들어서 한다면

없는 숫자에 대해서는 error message를 raise하게 됨

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 7, 9, 1, 2, 3, 3, 5, 2, 6, 8, 9, 0, 1, 1, 4, 7, 0]
answer = {}
for number in my_list:
    try:
        answer[number] += 1
    except KeyError:
        answer[number] = 1

print(answer[1]) # = 4
print(answer[3])  # = 3
print(answer[100])  # =  raise KeyError
728x90

댓글