교육 정보
- 교육 명: 경기미래기술학교 AI 교육
- 교육 기간: 2023.05.08 ~ 2023.10.31
- 오늘의 커리큘럼: 빅데이터 기초 활용 역량 강화 (5/10~6/9) - 파이썬 프로그래밍
- 강사: 조미정 강사님 (빅데이터, 머신러닝, 인공지능)
- 강의 계획:
1. 파이썬 언어 기초 프로그래밍
2. 크롤링 - 데이터 분석을 위한 데이터 수집(파이썬으로 진행)
3. 탐색적 데이터 분석, 분석 실습
- 분석은 파이썬만으로는 할 수 없으므로 분석 라이브러리/시각화 라이브러리를 통해 분석
4. 통계기반 데이터 분석
5. 미니프로젝트
- {key:value} 형태의 자료구조
- key 값을 통해 value값 조회 가능
- 생성
- new_dict = {key:value}
- key, value로 사용가능한 자료형
- 딕셔너리의 value에는 아무 자료형이나 들어갈 수 있으나 key에는 변경 불가능(immutable)한 값만 들어갈 수 있다.
- 가능한 key 값my_dict2 = { 4: 'four', 1.5: 'one point five', 'string_key': 'string_value', True: 'True', (1,4): 'tuple', # [1, 2, 3]: 'a list', # 리스트는 key로 사용 불가 # {10: 'ten'}: 'a dictionary' # dict은 key로 사용 불가 }
※ 참고 변경가능(mutable)/변경 불가능(immutable)
#int a = 1 print(id(a)) print(type(a)) a = 2 print(id(a)) # 값만 바뀌었으니까 주소가 그대로일것 같지만 이렇게 주소가 바뀜 -> immutable # a위치에 2가 들어가는게 아니라 2를 객체로 메모리에 넣고 a는 그 값을 레퍼런스 하는것!!! b=2 print(id(b)) #list a=[1,2,3] print(a) print(id(a)) a[2]=4 print(a) print(id(a)) #요소가 바뀌었음에도 메모리 주소가 그대로인걸 확인 할 수 있음 -> mutable
- 가능한 value 값
my_dict1 = { 'key_1': 'first_value', 'key_2': 2, 'key_3': 3.14, 'key_4': True, 'key_5': [4, 2, 1], 'key_6': {'inner_key': 6} # 다중 딕셔너리 }
dict[key]: key에 해당하는 value 리턴
dict.keys(): 딕셔너리의 모든 key 값을 리턴
dict.value(): 딕셔너리의 모든 vlaue 값을 리턴
-.key(), .value를 쓴다고 해당 값을 리스트로 만들어서 메모리에 올리는 것은 아님 (리턴만 함)
특정 key를 가지는지 확인
- 찾는값 in dict : 찾는 key가 dict에 있는지 boolean 값으로 리턴
- dict.get(찾는값) : 찾는 key에 해당하는 value를 리턴, 없는경우 None을 리턴
길이 구하기
- len(dict)
다중 딕셔너리
game = { "game1": { "title":"hello", "genre":"FPS", "year":1234 }, "game2" : { "title":"hello2", "genre":"FPS2", "year":12342 }, } #game1의 자료형 print(type(game["game1"])) #game2의 genre에 접근 print(game["game2"]["genre"]) # # 결과 <class 'dict'> FPS2
- 항목 추가
- dict[new_key] = new_value (기존 항목이 있으면 해당 key의 value 값 변경)
- dict[key] = new_value
- 항목 제거
- del dict[key]
- dict.pop(key)를 사용하면 원본 dict에서 key에 해당하는 value를 제거하고 제거한 값을 리턴함