• 키(Key)와 값(Value)의 순서쌍으로 구성된 자료 구조
• 요소들의 저장 순서가 없어서 더 빠르게 데이터에 접근 가능
• 키(Key)는 중복되지 않고, 키값으로 인덱싱되어 해당값에 접근
• 중복되는 경우, ‘임의의’ 하나를 제외한 나머지는 무시
• n개의 요소(element)를 갖는 딕셔너리 선언문
딕셔너리이름 = {키1:값1, 키2:값2, ..., 키n:값n}
• 인수로 전달한 키에 해당하는 값을 반환
• 딕셔너리안에 전달한키가 없으면 아무것도 반환하지 않음(None)
딕셔너리이름.get(접근할 요소의 키)
• 선언된 딕셔너리에 속한 키, 값, 요소를 확인하는 메소드
딕셔너리이름.keys()
딕셔너리이름.values()
딕셔너리이름.items()
• 딕셔너리에 포함된 요소 갯수 확인
len(딕셔너리이름)
• 딕셔너리에 새로운 키, 새로운 값을 할당하면 선언된 딕셔너리에 새 요소 추가 가능
• 리스트에서 새 요소를 추가하기위해 사용했던 append와 유사한 기능
딕셔너리이름[새로추가할요소의키]=값
• 선언된 기존 딕셔너리에 있던 기존 키에 새로운 값을 대입
• 요소 추가에서 사용했던 방식과 유사
딕셔너리이름[수정할요소의키]=새로운 값
• 선언된 딕셔너리에 있던 특정 키와 연관된 값을 삭제하거나, 모든 요소 삭제 가능
• 특정 요소삭제
del 딕셔너리이름[삭제할요소의키]
• 모든 요소삭제
딕셔너리이름.clear()
• 순서도, 중복도 없는 자료형
• 집합연산(합집합,차집합,교집합)을 지원
set이름 = {값1, 값2, ..., 값n}
• 요소 1개추가
set이름.add(‘새요소’)
• 요소 여러개추가
set이름.update(‘새요소1’,...,’새요소k’)
• 특정 요소삭제
set이름.remove(‘기존요소’)
• 전체 요소삭제
set이름.clear()
• 교집합 연산
set1 & set2
set1.intersection(set2)
• 합집합 연산
set1 | set2
set1.union(set2)
• 차집합 연산
set1 - set2
set1.difference(set2)
• Pandas 라이브러리를 활용해 csv 파일을 데이터프레임으로 읽어올 수 있다.
• 판다스 라이브러리 호출
Import pandas as pd
• 특정 경로에 저장된 csv 파일을 데이터 프레임으로 생성
infor2020 = pd.read_csv('/content/drive/health_infor2020.csv')
• "키-값"으로 이루어진 데이터 오브젝트를 전달
• 사람이 읽고 쓰고, 기계가 분석하고 생성하기 용이
• 개방형 표준 포맷이고, 구조에 제한이 없다.
• JSON형식을 읽고 변환하기 위한 내장 라이브러리 호출
Import json
• JSON형식으로 작성된 문자열을 Python 딕셔너리 객체로 변환
json_object = json.loads(json_string)
• 딕셔너리 객체를 JSON형식으로 작성된 문자열로 변환
json_string = json.loads(json_object)
• 특정 경로에 있는 JSON파일을 읽어옴
json_object = json.load(open(' fileName.json ', ' r ' , encoding='utf-8') )
• Withopen: 활용하는 경우
with open(' fileName.json ', ' r ' , encoding='utf-8') as f : json_object = json.load(f)
• iterable 객체: 차례로 하나씩 반복해서 반환할 수 있는 객체
Ex) List, Set, Tuple, Dictionary
• iterator 객체: 값을 차례대로 꺼낼 수 있는 객체
• next() 메소드로 데이터를 순차적으로 호출할 수 있다.
• Iterable object ↛ iterator
• List는 iterator가 아니지만, for 반복문에서 임시로 iterator로 쓰임
• 코드예시
Def generator(n) :
...
yield x
• generator 의 경우 데이터 값을 한번에 메모리에 올리지 않고, next() 메소드를 통해 차례로 값에 접근할 때마다 함수를 수행한 결과를 산출
• 리스트 규모가 클수록, 메모리를 절약할 수 있어 generator가 더효율적
• 명확한 끝이 없는 데이터스트림처럼, 무한하고 순서가 있는 객체를 다룰 수 있다.
https://bluese05.tistory.com/56
https://wikidocs.net/16069
: 한 줄 짜리 이름 없는 함수
• 자주 쓰지 않는 기능인 경우,함수로 생성하면 코드가 너무 복잡하고 길어짐
• 람다형식으로 이름없는 함수를 생성해 한 줄로 처리
• 인수를 받을 수 있으며,새로운 변수를 생성하거나 기존변수를 변경하지 않음
• 람다함수선언
Lambda : (필요한 동작)(인수)
• 리스트나 딕셔너리같은 iterable 데이터를 인자로 받는다.
• 리스트에 속한 각각의 원소를 함수의 인자로 전달
• 원소를 함수에 대입한 결과를 반환
• map 함수 구문
map(함수, 인자가 들어있는 리스트)
• 리스트, 딕셔너리같은 iterable 데이터를 인자로 받는다.
• 함수결과가 True인 경우인iterable 데이터의 원소만 반환한다.
• filter 함수 구문
filter(함수, 인자가 들어있는 리스트)