-
[파이썬/자료형]딕셔너리(Dictionary)기타 2022. 9. 7. 11:43반응형
1. 딕셔너리란
키(key)와 값(value)로 이루어진 자료형
키에 해당하는 값을 넣어 만들 수 있다
2. 선언
2.1 빈 딕셔너리 선언
dic = {}
2.2 key와 value를 넣어서 선언
dic = { 'a':0, 'b':1, 'c':2 }
2.3 다양한 타입의 value를 넣어서 선언하기
dic = { 'int_v' : 1, 'str_v' : 'hello', 'lst_v' : [], 'lst_v2' : [1,2,3], 'tup_v' : (1,2,3) }
3. Key/value 호출
key/value 호출 예시를 위해서 2.3항목의 딕셔너리를 사용한다고 가정함
3.1 전체 key 목록 불러오기
기본적인 반환타임은 dict_keys 형태이다
리스트형을 원하면 list()를 통해 형변환을 해야한다
# 딕셔너리.keys() dic_keys_lst = dic.keys() print(dic_keys_lst) #>> dict_keys(['int_v', 'str_v', 'lst_v', 'lst_v2', 'tup_v']) print(list(dic_keys_lst)) #>> ['int_v', 'str_v', 'lst_v', 'lst_v2', 'tup_v']
3.2 for문으로 key하나씩 받아오기
for key in dic: print(key)
3.3 전체 value 불러오기
기본적인 반환타임은 dict_values 형태이다
리스트형을 원하면 list()를 통해 형변환을 해야한다
# 딕셔너리.values() dic_value_lst = dic.values() print(dic_value_lst) #>> dict_values([1, 'hello', [], [1, 2, 3], (1, 2, 3)]) print(list(dic_value_lst)) #>> [1, 'hello', [], [1, 2, 3], (1, 2, 3)]
3.4 특정 key의 value 불러오기
전체의 값이 아닌, 특정 key를 지정해서 해당 key의 value만 불러오기
# 사용법 # dic['key이름'] # 사용 예시1 dic['lst_v2'] #>> [1,2,3] # 사용 예시2 key_name = 'lst_v2' dic[key_name] #>> [1,2,3]
3.5 특정 key의 value 불러오기(불러온 값은 삭제)
전체의 값이 아닌, 특정 key를 지정해서 해당 key의 value만 불러오기
단, 이때 불러온 key는 딕셔너리에서 삭제된다
# 사용법 # dic.pop('key이름') # 사용 예시1 dic.pop('lst_v2') #>> [1,2,3] # 사용 예시2 key_name = 'lst_v2' dic.pop(key_name) #>> [1,2,3]
# 실제로 해당 값이 원본 딕셔너리에서 삭제되는지 실험 dic = {'a':0, 'b':99} print('before dic : ',dic) # 특정 key 지정 후 제거 poped_v = dic.pop('b') print('poped value : ',poped_v) print('after dic : ',dic) #>> before dic : {'a': 0, 'b': 99} #>> poped value : 99 #>> after dic : {'a': 0}
4. Key 삽입,삭제,수정
4.1 key 삽입
dic = {'a':0} print('before dic : ',dic) # 새로운 key 생성 및 해당 키에 값 넣기 dic['new_key'] = 'this is new key' print('after dic : ',dic) #>> before dic : {'a': 0} #>> after dic : {'a': 0, 'new_key': 'this is new key'}
4.2 key 삭제
dic = {'a':0, 'b':99} print('before dic : ',dic) # 특정 key 지정 후 제거 del(dic['b']) print('after dic : ',dic) #>> before dic : {'a': 0, 'b': 99} #>> after dic : {'a': 0}
4.3 key 수정
직접 제공하는 기능은 아니지만,
앞서 배운 key 삽입과 특정 key의 value 추출 후 삭제를 이용해서 구현 가능하다
dic['new_key'] = dic.pop('old_key')
5. Value 치환/메소드사용
5.1 value 치환key의 value는 일반 변수와 같이 새로운 값을 넣어서 치환 가능하다
dic = {'a':0, 'b':9} print('before dic : ',dic) #key 'a'의 value를 100으로 치환 dic['a'] = 100 #key 'b'의 value를 dic['b'] + 1 으로 치환 dic['b'] += 1 print('after dic : ',dic) #>> before dic : {'a': 0, 'b': 9} #>> after dic : {'a': 100, 'b': 10}
5.2 value의 메소드 사용
key의 value에 list 등의 객체가 들어가 있으면 해당 객체의 메소드를 사용 할 수 있다
dic = { 'lst_v' : [7,3,9] } print('origin dic : ',dic) dic['lst_v'].append(1) print('after append : ',dic) dic['lst_v'].extend([10,11,12]) print('after extend : ',dic) dic['lst_v'].sort() print('after sort : ',dic) #>> origin dic : {'lst_v': [7, 3, 9]} #>> after append : {'lst_v': [7, 3, 9, 1]} #>> after extend : {'lst_v': [7, 3, 9, 1, 10, 11, 12]} #>> after sort : {'lst_v': [1, 3, 7, 9, 10, 11, 12]}
6. 딕셔너리 정렬하기
tmp_dic = dict(sorted(tmp_dic.items(), key=lambda x: x[1][기준이되는 컬럼], reverse=True))
반응형'기타' 카테고리의 다른 글
인공지능 기초 이론시험 요점 (1) 2022.10.20 데이터마이닝 수업 정리 (0) 2022.09.29 수업 요점정리 2주차(1) (0) 2022.09.06 제조업에서의 AI 혁신, 등대공장(Lighthouse Factory)이란? (0) 2022.08.06 분석과제를 하면서 겪었던 포인트들 (0) 2022.07.08