+이전포스팅 참고하세요)[python example #4-2]List자료형만 사용하여 최빈값 더 간단하게 구하기(최빈값 1개 vs 여러개)
[PYTHON] 최빈값 출력하기
<숫자list, dictionary 사용> - 다음 포스팅에서 문자list예정(거의비슷)
문자list, 숫자list, 문자숫자혼합list 모두 사용가능
-
문제
숫자로 이루어진 list에서 가장 많이 등장한 최빈값을 출력하세요
-
알고리즘 표현
1. input = [4,13,2,55,34,14,14,23,2,2,55,5,55,34,34,34]
2. 결과 dictionary = {'4의 빈도': 1, '13의 빈도': 1, '2의 빈도': 3, '55의 빈도': 4, '34의 빈도': 4, '14의 빈도': 2, '23의 빈도': 1, '5의 빈도': 1}
-> dictionary의 key값은 중복될 수 없음을 이용
-> input을 하나씩 검사하면서 같은 숫자의 value값을 +1씩할 것이다.
3. dictionary에서 가장 value값이 크게나온{'55의 빈도': 4, '34의 빈도': 4} 를 찾을 수 있다.
-> 4. 즉, 최빈값 = 34, 55 이다.
-
input
input = [2,2,2,5,5,5,6,6,6,6,6,6,9,9,11,11,11,11,11,11]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
input = [2,2,2,5,5,5,6,6,6,6,6,6,9,9,11,11,11,11,11,11]
def 숫자리스트최빈값(x): #x가 list로 주어질 때, 그 수 중에서 최빈값을 구할 것
dictionary = {}
for i in x:
if dictionary.get(i) is None: #파이썬에선 없음을 None으로 표기
dictionary[i] = 1 #i라는 숫자가 나올때 1을 삽입
else:
dictionary[i] += 1 #i라는 숫자의 빈도 증가
#여러개의 최빈값을 뽑아내기
most = max(dictionary.values()) #최빈값 추출 - 값중에 최대값 찾기
max_list ={}
#최빈값 dictionary만들기
for key, value in dictionary.items():
if value == most :
max_list[key] = value
print(dictionary) #{2: 3, 5: 3, 6: 6, 9: 2, 11: 6} :2가 3번, 5가 3번, 6이 6번....
print(max_list) #{6: 6, 11: 6} : 최빈값 리스트만 추출
return max_list
final = 숫자리스트최빈값(input) # 최빈값만 뽑아낸 리스트 = max_list
print(final) #결과값 두번째줄
print("최빈값은 ", end = " ")
for key,value in final.items(): #최빈값 여러개일 경우 뽑기 가능
print(key, end = " ")
print("입니다.")
|
cs |
- 결과값
{2: 3, 5: 3, 6: 6, 9: 2, 11: 6}
{6: 6, 11: 6}
{6: 6, 11: 6}
최빈값은 6 11 입니다.
-> 최빈값이 2개인 경우입니다. : 6, 11
-
배울코드
1. dictionary 자료형을 for문안에 두고, key값도 달라지게 할 수 있음을 알아야한다.
2. if dictionary.get(key) is None 과 if key not in dictionary 이 같은역할을 하여 두 코드 모두 작동된다.
3. 여러개의 최빈값을 뽑아내는 방법을 알자
*)
어떤 피드백이든 댓글부탁드립니다.
더 좋은 방법이 있다면 알려주세요.
도움이 되셨다면, 하트버튼 또는 댓글부탁드려요~
요청할 문제가 있다면 댓글 부탁드려요!!!
*(
'python > 파이썬 예제' 카테고리의 다른 글
스도쿠가 정답인지 확인하는 코드 [#6] (0) | 2020.04.12 |
---|---|
파이썬 행의 합, 열의합, 최대값 구하는 함수[#5] (0) | 2020.03.21 |
[python example #3] 숫자 순으로 리스트 합치기(중복제거list 합치기) (0) | 2020.03.16 |
파이썬으로 소수찾기 함수 [#2] (0) | 2020.03.15 |
파이썬 문자열 거꾸로 출력하는 방법 [#1] (0) | 2020.03.15 |