Skip to content
파이썬
2021.09.13 18:14

파이썬 dictionary 딕셔너리 조작

조회 수 2535 추천 수 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 프로세스 프로세스 2 3 2011.02.07 312174
916 WindowsTip 윈도우 DLL 오류 해결방법 2013.01.23 192701
915 컴퓨터잡담 자바스크립트로 전송(submit) 버튼 누르기 3 2010.10.10 103644
914 컴퓨터잡담 hMailServer - 설치시 주의 핵심사항 1 2010.08.24 103067
913 컴퓨터잡담 북마크 링크 주소모음 2010.10.30 102936
912 파이썬 파이썬에서 인식이 잘되는 OCR 종류 2023.09.15 72101
911 컴퓨터잡담 파이썬 request, beautifulshop으로 정액정보 받아오기 2023.09.29 71864
910 파이썬 파이썬 랜덤으로 문제풀기 #2 2023.10.04 71576
909 파이썬 한우경매낙찰 유튜브 영상의 이미지에서 특정 문자 가져와서 저장하기 2023.09.14 71475
908 컴퓨터잡담 CANON PRINTER ERROR CODE B203, B204 해결방법 2023.09.17 71125
907 파이썬 파이썬 랜덤으로 시험문제 풀기 file 2023.10.04 67814
906 컴퓨터잡담 엑셀 색깔 지정 함수 1 2010.07.28 65609
905 컴퓨터잡담 MYSQL 미 해결 과제 : Can't connect to MySQL server on 'localhost'(10055) 3 3 2009.11.21 64229
904 컴퓨터잡담 php로 이미지를 mysql디비 저장하고 보여주는 소스 4 3 2009.10.17 62317
903 파이썬 파이썬 requestsbeautifulsoup 으로 웹 input에 입력값 대입한 뒤 결과값 파일로 저장하기 2023.11.13 59401
902 컴퓨터잡담 여러개의 엑셀파일을 하나로 합치기 2 2010.06.22 57407
901 컴퓨터잡담 오류 socket error #10061 connection 3 2 2010.09.25 54048
900 AutoHotKey AHK) AUTOKEY 웹페이지 열지않고 소스 가져오기 또는 로그인 하기 14 2012.05.12 52951
899 Visual C++ VBS) VBScript Telnet log save 2013.09.21 51929
898 컴퓨터잡담 H734GP 공유기 시스템로그 중 >>> Send Offer / Receive Discover / 2023.06.04 51316
Board Pagination Prev 1 2 3 4 5 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소