Skip to content
파이썬
2021.09.13 18:14

파이썬 dictionary 딕셔너리 조작

조회 수 2536 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

파이썬 dictionary 딕셔너리 조작

 

 

 

 

a={'045340': {'1 : 12850,2 : 12800,3 : 12750,4 : 12700,5 : 12650,6 : 12600,7 : 12550,8 : 12500,9 : 12450,10 : 12400'}, '063760': {'1 : 14300,2 : 14250,3 : 14200,4 : 14150,5 : 14100,6 : 14050,7 : 14000,8 : 13950,9 : 13900,10 : 13850'}, '010240': {'1 : 7730,2 : 7700,3 : 7690,4 : 7680,5 : 7670,6 : 7660,7 : 7650,8 : 7640,9 : 7630,10 : 7620'}, '005490': {'1 : 9890,2 : 9880,3 : 9870,4 : 9860,5 : 9850,6 : 9840,7 : 9830,8 : 9820,9 : 9810,10 : 9800'}, '002760': {'1 : 374000,2 : 373500,3 : 373000,4 : 372500,5 : 372000,6 : 371500,7 : 371000,8 : 370500,9 : 370000,10 : 369500'}, '208140': {'1 : 2490,2 : 2485,3 : 2480,4 : 2475,5 : 2470,6 : 2465,7 : 2460,8 : 2455,9 : 2450,10 : 2445'}, '025950': {'1 : 8990,2 : 8980,3 : 8970,4 : 8960,5 : 8950,6 : 8940,7 : 8930,8 : 8920,9 : 8910,10 : 8900'}, '045300': {'1 : 3625,2 : 3620,3 : 3615,4 : 3610,5 : 3605,6 : 3600,7 : 3595,8 : 3590,9 : 3585,10 : 3580'}, '013990': {'1 : 50600,2 : 50500,3 : 50400,4 : 50300,5 : 50200,6 : 50100,7 : 50000,8 : 49950,9 : 49900,10 : 49850'}, '017940': {'1 : 7070,2 : 7060,3 : 7050,4 : 7040,5 : 7030,6 : 7020,7 : 7010,8 : 7000,9 : 6990,10 : 6980'}, '192390': {'1 : 6030,2 : 6020,3 : 6010,4 : 6000,5 : 5990,6 : 5980,7 : 5970,8 : 5960,9 : 5950,10 : 5940'}, '046310': {'1 : 63200,2 : 63100,3 : 63000,4 : 62900,5 : 62800,6 : 62700,7 : 62600,8 : 62500,9 : 62400,10 : 62300'}, '094840': {'1 : 5880,2 : 5860,3 : 5850,4 : 5840,5 : 5830,6 : 5820,7 : 5810,8 : 5800,9 : 5790,10 : 5780'}, '006380': {'1 : 5000,2 : 4995,3 : 4990,4 : 4985,5 : 4980,6 : 4975,7 : 4970,8 : 4965,9 : 4960,10 : 4955'}, '052670': {'1 : 3835,2 : 3830,3 : 3825,4 : 3820,5 : 3815,6 : 3810,7 : 3805,8 : 3800,9 : 3795,10 : 3790'}, '073560': {'1 : 9570,2 : 9560,3 : 9550,4 : 9540,5 : 9530,6 : 9520,7 : 9510,8 : 9500,9 : 9490,10 : 9480'}, '035890': {'1 : 5160,2 : 5150,3 : 5140,4 : 5130,5 : 5120,6 : 5110,7 : 5100,8 : 5090,9 : 5080,10 : 5070'}, '115310': {'1 : 3740,2 : 3735,3 : 3730,4 : 3725,5 : 3720,6 : 3715,7 : 3710,8 : 3705,9 : 3700,10 : 3695'}, '022220': {'1 : 2465,2 : 2460,3 : 2455,4 : 2450,5 : 2445,6 : 2440,7 : 2435,8 : 2430,9 : 2425,10 : 2420'}, '011370': {'1 : 2025,2 : 2020,3 : 2015,4 : 2010,5 : 2005,6 : 2000,7 : 1995,8 : 1990,9 : 1985,10 : 1980'}, '003410': {'1 : 29050,2 : 29000,3 : 28950,4 : 28900,5 : 28850,6 : 28800,7 : 28750,8 : 28700,9 : 28600,10 : 28550'}, '010960': {'1 : 2580,2 : 2575,3 : 2570,4 : 2565,5 : 2560,6 : 2555,7 : 2550,8 : 2545,9 : 2540,10 : 2535'}, '006660': {'1 : 2550,2 : 2545,3 : 2540,4 : 2535,5 : 2530,6 : 2525,7 : 2520,8 : 2515,9 : 2510,10 : 2505'}, '009150': {'1 : 8530,2 : 8520,3 : 8510,4 : 8500,5 : 8490,6 : 8480,7 : 8470,8 : 8460,9 : 8450,10 : 8440'}, '092780': {'1 : 5810,2 : 5800,3 : 5790,4 : 5770,5 : 5760,6 : 5750,7 : 5740,8 : 5730,9 : 5720,10 : 5710'}, '007340': {'1 : 24650,2 : 24600,3 : 24550,4 : 24500,5 : 24450,6 : 24400,7 : 24350,8 : 24300,9 : 24250,10 : 24200'}, '003610': {'1 : 15750,2 : 15700,3 : 15650,4 : 15600,5 : 15500,6 : 15450,7 : 15400,8 : 15050,9 : 15000,10 : 14900'}, '044180': {'1 : 184500,2 : 184000,3 : 183500,4 : 183000,5 : 182500,6 : 182000,7 : 181500,8 : 181000,9 : 180500,10 : 180000'}, '019680': {'1 : 10750,2 : 10700,3 : 10650,4 : 10600,5 : 10550,6 : 10500,7 : 10450,8 : 10400,9 : 10350,10 : 10300'}}
 
b = a['063760']
a={}

b = {}
b.setdefault("a" , "바보들")
b.setdefault("b" , "멍청이들")
b.setdefault("c" , "수상한놈들")

# setdefault는 키-값 쌍 추가만 할 수 있고, update처럼 수정은 할 수 없다.
# setdefault에 키만 지정하면 값에 None을 저장한다.
b.update(c="초코볼놈")
b.update(f="상큼한넘",g="지룰맞은놈")
print(b)
 
# 딕셔너리에 키, 기본값 저장하기
# setdefault에 키만 지정하면 값에 None을 저장한다.
a.setdefault("000090",b)
 
print(b)
# a.update("000090",b)
print(a)
 
print(a["000090"])
 
c = a["000090"]
 
print(c)
 
print(a["000090"].keys())
 
print(a["000090"].values())
 
# 리스트와 튜플을 이용하는 방법

c.update({10'TEN'11'ELEVEN'}) # <<< update(리스트)
c.update([[12'TWELVE'], [13'THIRTEEN']])    # <<< update(튜플)
 
print(c)
 
# 딕셔너리에서 키-값 쌍 삭제하기  pop(키)
print(c.pop(10))
print(c)
 
# del로 특정 키-값을 삭제할 수도 있다.
del c[12]
print(c)

# 딕셔너리에서 키의 값을 가져오기 get(키)

 

 

 

결과>>>

PS H:\python\py_code> & H:/python/python.exe h:/python/py_code/농사/축산/test.py

{'a': '바보들', 'b': '멍청이들', 'c': '초코볼놈', 'f': '상큼한넘', 'g': '지룰맞은놈'}

{'a': '바보들', 'b': '멍청이들', 'c': '초코볼놈', 'f': '상큼한넘', 'g': '지룰맞은놈'}

{'000090': {'a': '바보들', 'b': '멍청이들', 'c': '초코볼놈', 'f': '상큼한넘', 'g': '지룰맞은놈'}}

{'a': '바보들', 'b': '멍청이들', 'c': '초코볼놈', 'f': '상큼한넘', 'g': '지룰맞은놈'}

{'a': '바보들', 'b': '멍청이들', 'c': '초코볼놈', 'f': '상큼한넘', 'g': '지룰맞은놈'}

dict_keys(['a', 'b', 'c', 'f', 'g'])

dict_values(['바보들', '멍청이들', '초코볼놈', '상큼한넘', '지룰맞은놈'])

{'a': '바보들', 'b': '멍청이들', 'c': '초코볼놈', 'f': '상큼한넘', 'g': '지룰맞은놈', 10: 'TEN', 11: 'ELEVEN', 12: 'TWELVE', 13: 'THIRTEEN'}

TEN

{'a': '바보들', 'b': '멍청이들', 'c': '초코볼놈', 'f': '상큼한넘', 'g': '지룰맞은놈', 11: 'ELEVEN', 12: 'TWELVE', 13: 'THIRTEEN'}

{'a': '바보들', 'b': '멍청이들', 'c': '초코볼놈', 'f': '상큼한넘', 'g': '지룰맞은놈', 11: 'ELEVEN', 13: 'THIRTEEN'}

PS H:\python\py_code> 

 

 

 

 

 

 

출처:https://velog.io/@realryankim/TIL-31.-python-%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC-%EC%A1%B0%EC%9E%91

딕셔너리에 키-값 쌍 추가하기

  • setdefault: 키-값 쌍 추가
  • update: 키의 값 수정, 키가 없으면 키-값 쌍 추가

딕셔너리에 키, 기본값 저장하기

x = {'a': 100, 'b': 200, 'c': 300, 'd': 40}
x.setdefault('e')
print(x)

{'a': 100, 'b': 200, 'c': 300, 'd': 40, 'e': None}

setdefault에 키만 지정하면 값에 None을 저장한다.

x = {'a': 100, 'b': 200, 'c': 300, 'd': 40}
x.setdefault('e')
x.setdefault('f', 500)
print(x)

{'a': 100, 'b': 200, 'c': 300, 'd': 40, 'e': None, 'f': 500}

딕셔너리에서 키의 값 수정하기

x = {'a': 100, 'b': 200, 'c': 300, 'd': 40}
x.update(a=10)
print(x)

{'a': 10, 'b': 200, 'c': 300, 'd': 40}
x = {'a': 100, 'b': 200, 'c': 300, 'd': 40}
x.update(a=10)
x.update(e=500)
print(x)

{'a': 10, 'b': 200, 'c': 300, 'd': 40, 'e': 500}

딕셔너리에 키가 없으면 키-값 쌍을 추가한다.

x = {'a': 100, 'b': 200, 'c': 300, 'd': 40}
x.update(a=10)
x.update(e=500)
x.update(b=555, f= 3000)
print(x)

{'a': 10, 'b': 555, 'c': 300, 'd': 40, 'e': 500, 'f': 3000}

update는 키-값 쌍 여러 개를 콤마로 구분해서 넣어주면 값을 한꺼번에 수정할 수 있다.

update(키=값)은 키가 문자열일 때만 사용할 수 있고, 만약 키가 숫자일 경우에는 update(딕셔너리)처럼 딕셔너리를 넣어서 값을 수정할 수 있다.

y = {10: 'ten', 11: 'eleven'}
y.update({10: 'TEN', 11: 'ELEVEN'})
print(y)

{10: 'TEN', 11: 'ELEVEN'}

리스트와 튜플을 이용하는 방법도 있다.

  • update(리스트)
  • update(튜플)
y = {10: 'ten', 11: 'eleven'}
y.update({10: 'TEN', 11: 'ELEVEN'})
y.update([[12, 'TWELVE'], [13, 'THIRTEEN']])
print(y)

{10: 'TEN', 11: 'ELEVEN', 12: 'TWELVE', 13: 'THIRTEEN'}

UPDATE(반복가능한객체)는 키-값 쌍으로 된 반복 가능한 객체로 값을 수정한다. 즉, 키 리스트와 값 리스트를 묶은 zip 객체로 값을 수정할 수 있다.

setdefault는 키-값 쌍 추가만 할 수 있고, update처럼 수정은 할 수 없다.

딕셔너리에서 키-값 쌍 삭제하기

  • pop(키)
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
print(x.pop('a'))
print(x)

100		# 'a'를 삭제 후, 100을 반환함.
{'b': 200, 'c': 300, 'd': 400}
  • del로 특정 키-값을 삭제할 수도 있다.
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
del x['a']
print(x)

{'b': 200, 'c': 300, 'd': 400}

딕셔너리에서 마지막 키-값 쌍 삭제하기

  • popitem()
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
print(x.popitem())
print(x)

{'a': 100, 'b': 200, 'c': 300}

참고로 파이썬 3.5와 그 이하 버전에서 popitem 메서드를 사용하면 임의의 키-값을 삭제한다.

딕셔너리의 모든 키-값 쌍 삭제하기

  • clear()
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
x.clear()
print(x)

{}

딕셔너리에서 키의 값을 가져오기

  • get(키)
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
print(x.get('a'))

100

딕셔너리에서 키-값 쌍을 모두 가져오기

  • items: 키-값 쌍을 모두 가져옴
  • keys: 키를 모두 가져옴
  • values: 값을 모두 가져옴
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
print(x.items())

dict_items([('a', 100), ('b', 200), ('c', 300), ('d', 400)])
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
print(x.keys())

dict_keys(['a', 'b', 'c', 'd'])
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
print(x.values())

dict_values([100, 200, 300, 400])

리스트와 튜플로 딕셔너리 만들기

  • dict.fromkeys(키리스트)
keys = ['a', 'b', 'c', 'd']
x = dict.fromkeys(keys)
print(x)

{'a': None, 'b': None, 'c': None, 'd': None}
# 값은 모두 None으로 저장한다.
  • dict.fromkeys(키리스트, 값)
keys = ['a', 'b', 'c', 'd']
y = dict.fromkeys(keys, 100)
print(y)

{'a': 100, 'b': 100, 'c': 100, 'd': 100}

반복문으로 딕셔너리의 키-값 쌍 모두 출력하기

딕셔너리, for 반복문으로 간단하게 모든 키-값 쌍을 출력해보자.

for 키, 값 in 딕셔너리.items():
	반복할 코드
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
for key, value in x.items():
    print(key, value)

a 100
b 200
c 300
d 400

딕셔너리의 키와 값을 따로따로 출력해보자

  • items: 키-값 쌍을 모두 가져온다
  • keys: 키를 모두 가져온다
  • values: 값을 모두 가져온다
x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
for key in x.keys():
    print(key, end=' ')

a b c d


x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
for value in x.values():
    print(value, end=' ')

100 200 300 400 

딕셔너리 표현식을 사용해보자

  • {키: 값 for 키, 값 in 딕셔너리}
  • dict({키: 값 for 키, 값 in 딕셔너리})
keys = {'a', 'b', 'c', 'd'}
x = {key: value for key, value in dict.fromkeys(keys).items()}
print(x)

{'a': None, 'd': None, 'c': None, 'b': None}
# 엥? 이거 왜 랜던으로 출력되는거야?

딕셔너리 표현식에서 if 조건문을 사용해보자

  • {키: 값 for 키, 값 in 딕셔너리 if 조건식}
  • dict({키: 값 for 키, 값 in 딕셔너리 if 조건식})

특정한 값 삭제하기

x = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
x = {key: value for key, value in x.items() if value != 200}
print(x)

{'a': 100, 'c': 300, 'd': 400}

중첩 딕셔너리를 사용해보자

  • 딕셔너리 = {키1: {키A: 값A}. 키2: {키B: 값B}}
bootcamp_seoul = {
    'fastcampus': {
        'language': 'JS, Python',
        'training period': '6 months',
        'cost': '6,000,000 won'
    },
    'wecode': {
        'language': 'JS, Python',
        'training period': '3 months',
        'cost': '7,840,000 won'
    },
    'codestates': {
        'language': 'JS',
        'training period': '4 months',
        'cost': '7,900,000 won'
    }
}
  • 딕셔너리[키][키]
  • 딕셔너리[키][키] = 값
print(bootcamp_seoul['wecode']['training period'])
print(bootcamp_seoul['codestates']['cost'])
print(bootcamp_seoul['fastcampus']['language'])


3 months
7,900,000 won
JS, Python

딕셔너리의 할당과 복사

딕셔너리의 할당

x = {'a': 10, 'b': 10, 'c': 10, 'd': 10}
y = x

print(x is y)

True		# x와 y는 같은 객체

딕셔너리의 복사

  • copy 메서드 사용
x = {'a': 10, 'b': 10, 'c': 10, 'd': 10}
y = x.copy()

print(x is y)	# x와 y는 다른 객체지만
print(x == y)	# 키-값 쌍은 같다

False
True

중첩 딕셔너리의 할당과 복사를 알아보자

deepcopy 함수를 사용해야한다

import copy		# copy 모듈을 가져온다
x = {'a': {'python': '2.5'}, 'b': {'python': '3.8'}}
y = copy.deepcopy(x)
y['a']['python'] = '2.5.15'
print(x)
print(y)

 

 

 

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
917 HTMLPHPMSQL 지정한 이미지파일명을 출력 시키는 시험문제풀이 html 1 2023.12.13 52171
916 파이썬 파이썬 requestsbeautifulsoup 으로 웹 input에 입력값 대입한 뒤 결과값 파일로 저장하기 2023.11.13 61672
915 파이썬 파이썬 랜덤으로 문제풀기 #2 2023.10.04 73677
914 파이썬 파이썬 랜덤으로 시험문제 풀기 file 2023.10.04 70044
913 컴퓨터잡담 파이썬 request, beautifulshop으로 정액정보 받아오기 2023.09.29 73685
912 컴퓨터잡담 2023-09-23 서버다운 후 복구완료 secret 2023.09.23 41252
911 컴퓨터잡담 CANON PRINTER ERROR CODE B203, B204 해결방법 2023.09.17 73305
910 파이썬 파이썬에서 인식이 잘되는 OCR 종류 2023.09.15 74325
909 파이썬 한우경매낙찰 유튜브 영상의 이미지에서 특정 문자 가져와서 저장하기 2023.09.14 73698
908 컴퓨터잡담 H734GP 공유기 시스템로그 중 >>> Send Offer / Receive Discover / 2023.06.04 51409
907 파이썬 python AttributeError: 'WebDriver' object has no attribute 'find_element_by_css_selector' 해결방법 2023.05.07 47468
906 컴퓨터잡담 테블릿을 세컨트모니터로??? 2023.04.26 38018
905 파이썬 DiffusionWrapper has 859.52 M params. 2023.04.21 37351
904 [Docs]스프레드시트 구글 스프레드시트에서 셀값이 특정일에서 현재일과 3일 이내의 범위에 들어오면 이메일을 발송하는 방법 2023.03.26 40447
903 파이썬 파이썬으로 captCha 분석하여 웹사이트 소스 가져오기 2023.03.25 18993
902 컴퓨터잡담 윈도우10 운영체제에 크롬브라우저를 사용할 때 웹사이트 인증서 설치하는 방법 2023.03.25 15609
901 파이썬 파이썬에서 captCha 분석 프로그램을 만들 수 있을까? 2023.03.25 11720
900 [Docs]스프레드시트 구글 스프레드시트에서 O열=입금완료 가 있는 행은 행 전체가 노란색으로 변하게 하기 2023.03.24 10050
899 컴퓨터잡담 녹화기 Play Mode file 2023.03.17 6803
898 파이썬 웹 페이지에서 동적으로 생성되는 데이터 가져오는 방법 2023.03.15 6937
Board Pagination Prev 1 2 3 4 5 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소