목적
- 숫자 리스트에서 발생하는 숫자의 횟수와 합을 저장
- 숫자, 발생 횟수, 합의 다양한 방식으로 딕셔너리 저장
샘플 코드
# 딕셔너리와 리스트 조합, 소팅 예제
dataSample = [5, 3, 3, 2, 1, 6, 10, 8, 7, 3, 10, 2, 1, 6, 9, 4, 5, 2]
dicCount = {}
for data in dataSample:
if not data in dicCount:
dicCount[data] = [0, 0]
dicCount[data][0] += 1
dicCount[data][1] += data
print('dicCount')
for k, v in dicCount.items() :
print(k,v)
# 정렬 방식 : dicCount 를 key를 이용해 정렬 --> 튜플로 리턴됨
# x[0]은 dicCount.items() 이 리턴하는 (key, value) 에서 key 를 의미 한다.
dicCount2 = sorted(dicCount.items(), key=lambda x: x[0], reverse=False)
print('dicCount2 - key 로 정렬')
for item in dicCount2:
print(item[0], item[1])
# 정렬 방식 : dicCount 를 value[0] 를 이용해 정렬
# x[1][0]은 dicCount.items() 이 리턴하는 (key, value) value[0] 을 의미 한다.
dicCount3 = sorted(dicCount.items(), key=lambda x: x[1][0], reverse=True)
print('dicCount3 - 횟수로 정렬')
for item in dicCount3:
print(item[0], item[1])
# 정렬 방식 : dicCount 를 value[0] 를 이용해 정렬
# x[1][1]은 dicCount.items() 이 리턴하는 (key, value) value[1] 을 의미 한다.
dicCount4 = sorted(dicCount.items(), key=lambda x: x[1][1], reverse=True)
print('dicCount4 - 합으로 정렬')
for item in dicCount4:
print(item[0], item[1])
설명
dataSample []에 담겨 있는 숫자들의 개별 발생 횟수와 합을 구하는 간단한 예제
dicCount[숫자] = [횟수, 합]
방식으로 계산해서 dicCount 에 넣는다.
파이썬의 딕셔너리는 키 값으로 기본 정렬이 되지 않아서 sorted 함수를 이용해서 key, value 중 원하는 값으로 정렬했다.
dicCount2 에는 키 값으로 정렬하고
dicCount3는 [횟수, 합]에서 횟수로 역순 정렬
dicCount4는 [횟수, 합]에서 합으로 역순 정렬한다.
결과
dicCount
5 [2, 10]
3 [3, 9]
2 [3, 6]
1 [2, 2]
6 [2, 12]
10 [2, 20]
8 [1, 8]
7 [1, 7]
9 [1, 9]
4 [1, 4]
dicCount2 - key 로 정렬
1 [2, 2]
2 [3, 6]
3 [3, 9]
4 [1, 4]
5 [2, 10]
6 [2, 12]
7 [1, 7]
8 [1, 8]
9 [1, 9]
10 [2, 20]
dicCount3 - 횟수로 정렬
3 [3, 9]
2 [3, 6]
5 [2, 10]
1 [2, 2]
6 [2, 12]
10 [2, 20]
8 [1, 8]
7 [1, 7]
9 [1, 9]
4 [1, 4]
dicCount4 - 합으로 정렬
10 [2, 20]
6 [2, 12]
5 [2, 10]
3 [3, 9]
9 [1, 9]
8 [1, 8]
7 [1, 7]
2 [3, 6]
4 [1, 4]
1 [2, 2]
※ 주력 사용언어가 파이썬이 아니다 보니 어쩌다 코딩하면 헷갈리는 부분이 많아서 자주 사용(?) 하는 코드들은 간단히 정리하고 참고할 목적으로 블로그에 올리고 있습니다.
딕셔너리 기본 정렬 글은 아래 글을 참고하세요~
'개발 > 파이썬' 카테고리의 다른 글
[파이썬] 부동산 API로 아파트 매매 실거래가 구하기 (2) | 2020.02.28 |
---|---|
[파이썬] 여러 리스트를 하나로 합쳐주는 zip 함수 (0) | 2020.02.16 |
파이썬 아나콘다 32비트 설치/재설치 (4) | 2019.11.14 |
[파이썬] 웹 페이지 스크랩 하기(BeautifulSoup 이용) (2) | 2019.10.20 |
[파이썬] 함수 호출 CALL BY VALUE/CALL BY REFERENCE (2) | 2019.10.06 |
파이썬의 for 루프 (1) | 2019.06.16 |
댓글