Dictionary: 7개의 글
Python 사전(Dictionary)에서 값을 기준으로 topK를 추출하는 방법 python에서 dictionary를 갖고 있을때 (key, value)에서 value를 기반으로 topK를 뽑아내는 방법을 제시한다. 사전에서 값을 기준으로 정렬을 한 뒤에, [:N]을 이용해서 값을 추출할 수 있지만, 간단하게 한줄로 끝낼 수 있다. 기존 파이썬 패키지에 있는 heapq를 이용하면 된다. heapq는 Heap queue algorithm으로 priority queue 알고리즘을 이용해서 값을 찾아낸다. heaps은 binary tree를 이용하기 때문에 O(nlogn) 더 자세한 내용을 및 이론을 알고 싶으면 https://docs.python.org/2/library/heapq.html에서 8.4.3 ..
파이썬에서 pickle을 이용해 dictionary를 저장하고 로드하는 방법 중간 결과를 저장하거나, 최정 결과를 저장하기 위해 dictionary의 객체를 그대로 로컬의 디스크로 저장하는 방법은 자주 필요하다. key, map을 만드는 경우에도 중간 데이터를 생성해 놓은 뒤에, 이미 데이터가 있는 경우에는 로드해서 바로 사용하면 효율적이다. 코드 pickle을 이용해 데이터의 사이즈를 줄이고, 기존 textfile로 저장, 로드의 시간 소요가 절약된다. import pickle a = {'hello': 'world'} with open('filename.pickle', 'wb') as handle: pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL) w..
들어가며 파이썬을 코딩하다 보면 파일 입출력은 필수다. 뭐... 어디든지 필수겠지, 하지만 파이썬에서는 데이터 분석을 하는 경우가 많기 때문에 데이터를 읽기/쓰기가 자유로워야 한다. 특히 구분자가 ','로 되어있는 csv파일을 자주 읽게 되는데 csv를 읽는 두가지 방법에 대해서 설명한다. CSV파일 읽기/쓰기 파일 쓰기 with open('./file.csv', 'wb') as csvfile: writer = csv.writer(csvfile, delimiter=',') writer.writerow(['love'] * 3 + ['banana']) writer.writerow(['hong', 'love', 'banana']) writer.writerow(['monkey', 'kkikki', 'min'])..
collections 모듈을 이용해 dict 정렬하기 파이썬에서 자주 사용하는 Dictionary를 정렬하는 방법은 operator를 사용하는 방법도 있습니다. [바로가기] 이번에는 기본 모듈인 collections를 이용해서 dict 정렬하는 예제입니다. 소스코드 {2:3, 1:89, 4:5, 3:0} --> {1:89, 2:3, 3:0, 4:5} {2:3, 1:89, 4:5, 3:0}의 dict형태의 데이터를 저장하고, collections을 import 합니다. OrderedDict을 통해 정렬을 하는데, 이때 안에는 sorted(dict.items())를 넘겨주시면 됩니다. 아무래도 key와 value가 모두 정렬되니. 간편하게 사용이 가능 합니다. dict = {2:3, 1:89, 4:5, 3:..
들어가며 HTTP 통신을 하면서 data를 주고 받을 경우에 json형태로 데이터를 주고 받을 때가 많습니다. 또한 python에서는 dict의 type을 자주 사용하기 때문에 String을 dict으로 변환할 줄 알아야 하는데요. 아래 예제 코드는 json, dict 형태의 string을 json모듈을 이용해 dict의 type으로 변환해주는 코드입니다. python을 다룰때 가장 많이 사용하는 object중 하나가 dict이기 때문에 dict, json, string간의 변환이 자유로우면 상당한 무기가 될 수 있습니다. 예제코드 import json dict_string = '{"foo":"bar", "foo2":"bar2"}' # type(dict_string) # dict = json.loads(..
Dictionary key기준, value기준으로 정렬하기 들어가며 파이썬을 사용하다 보면 자주 List만큼 자주 사용하는 객체가 있으니 그것이 바로 dictionary입니다. 그렇기 때문에 dict을 자유롭게 다룰 줄 알아야 합니다. 자 그렇다면 기본 중에 기본인 정렬하는 방법에 대해서 알아보겠습니다. 일단 dict의 형태에 대해서 간단하게 설명하면 key, value의 쌍으로 이루어져 있습니다. 예제를 통해 알아보겠습니다. 구현하기 operator를 통해 정렬을 할 수 있습니다. 두개의 차이는 operator.itemgetter()에서 1, 0을 넘기는 거에 따라 key로 정렬, value로 정렬을 할 수 있습니다. 1을 값을 기준으로 정렬을 할때 사용하고, 0은 키를 기준으로 정렬이 가능합니다. v..
| 파이썬 딕셔너리 ( Python Dictionary ) 파이썬 딕셔너리는 key, value 한 쌍의 데이터를 모아넣는 자료구조입니다. 전화번호부에서 이름 - 전화번호 또는 아이디 - 비밀번호 와의 관계와 같습니다. 이런 구조를 전산학에서는 Hash라고 합니다. 다음은 딕셔너리에 관련된 예제입니다. x = {'Christopher Brooks': 'brooksch@umich.edu', 'Bill Gates': 'billg@microsoft.com'} print(x) print(x['Christopher Brooks']) # 키를 통한 데이터 접근 print(x.get('Christopher Brooks')) # 키를 이용한 값이 없을 경우 None 값 반환 print(x.get('saelobi')) ..