1. 딕셔너리
딕셔너리는 key와 value로 이루어진 자료구조이다.
한 번 선언한 key는 변경이 불가능하다.
선언하는 방법은 리스트와 달리 중괄호{} 이다.
id_pass = ("hello", "pw123")
accounts = {
id_pass: ('hello', ...),
}
# {(id, 비밀번호): 계정정보 }
딕셔너리에 값을 집어넣는 방법은 단순하다. dic[key] = val하면 값이 생긴다.
user_to_titles = {}
with open(filename) as file:
for line in file:
user, title = line.strip().split(':') #strip은 앞 뒤 공백을 제거해주는 함수
user_to_titles[user] = title # 딕셔너리에 값 추가
딕셔너리를 순회하기 위한 방법은 다음과 같다.
for id, password in accounts.items():
print(id + "-" password)
딕셔너리 안에 키가 있는지 확인하는 방법은 다음과 같다.
accounts = {
"kdhong": "Killdong Hong",
}
print("kdhong" in accounts) # True
print("elice" in accounts) # False
2. JSON
API 개발하면 매번 쓰는 바로 그 JSON이다. 매번 loads인지 dumps인지 헷갈렸는데 이번 기회에 확실히 배워보도록 하자.
파이썬의 딕셔너리와 json 형태는 유사하여 쉽게 형변환이 가능하다. 기억해야 할 점은 JSON은 기본적으로 문자열이라는 것이다.
loads()
: JSON 형태의 문자열을 딕셔너리로 변환합니다. 이 때 딕셔너리의 모든 원소는 문자열 타입으로 설정됩니다.
dumps()
: 딕셔너리를 JSON 형태의 문자열로 변환합니다.
# 파일을 읽어서 딕셔너리 형태로 바꾸는 예시
with open(filename) as file:
json_string = file.read() # JSON형태의 파일을 읽는다.
data = json.loads(json_string) # 딕셔너리로 변환한다.
return data
# JSON 파일을 읽고 딕셔너리를 JSON 형태의 문자열로 변환
def create_json(dictionary, filename):
with open(filename, 'w') as file:
file.write(json.dumps(dictionary))
3. 집합
집합은 수학에서 배웠던 집합 생각하면 된다. 중복이 없고 순서가 없는 것이 특징이다.
집합을 선언하는 법은 간단하다.
my_set = set([1,2,3]) # 집합 선언1
my_set2 = {1,2,3,4} # 집합 선언2
s1 = my_set.copy() # 셋을 복사
my_set.add(7) # 셋에 원소를 추가
new_numbers = [1, 2, 3, 4, 5]
my_set.update(new_numbers) # 리스트의 원소를 my_set에 추가
# my_set에서 짝수를 모두 제거
my_set = {num for num in my_set if num%2 == 1}
print(6 in my_set) # 원소 유무를 확인하는 방법은 딕셔너리와 동일하다.
집합이므로 합집합 |, 차집합 -, 교집합 & 구하기도 가능하다.
4. matplotlib
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
from elice_utils import EliceUtils
elice_utils = EliceUtils()
# 날짜 별 온도 데이터를 세팅합니다.
dates = ["1월 {}일".format(day) for day in range(1, 32)]
temperatures = list(range(1, 32))
# 막대 그래프의 막대 위치를 결정하는 pos를 선언합니다.
pos = range(len(dates))
# 한국어를 보기 좋게 표시할 수 있도록 폰트를 설정합니다.
font = fm.FontProperties(fname='./NanumBarunGothic.ttf')
# 막대의 높이가 빈도의 값이 되도록 설정합니다.
plt.bar(pos, temperatures, align='center')
# 각 막대에 해당되는 단어를 입력합니다.
plt.xticks(pos, dates, rotation='vertical', fontproperties=font)
# 그래프의 제목을 설정합니다.
plt.title('1월 중 기온 변화', fontproperties=font)
# Y축에 설명을 추가합니다.
plt.ylabel('온도', fontproperties=font)
# 단어가 잘리지 않도록 여백을 조정합니다.
plt.tight_layout()
# 그래프를 표시합니다.
plt.savefig('graph.png')
elice_utils.send_image('graph.png')
실행결과
'Data Science > Data Science' 카테고리의 다른 글
[Data Science] CSV 데이터 읽고 처리하기 (2) | 2021.01.19 |
---|---|
[Data Science] 텍스트 파일 분석 (2) | 2021.01.12 |
[Data Science] 파이썬 크롤링 - 워드 클라우드 만들기 (0) | 2021.01.12 |
[Data Science] API 크롤링 (0) | 2021.01.07 |
[Data Science] 파이썬 크롤링 2 (0) | 2021.01.07 |
댓글