Skip to content
파이썬
2021.09.13 18:14

파이썬 dictionary 딕셔너리 조작

조회 수 2537 추천 수 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
번호 분류 제목 날짜 조회 수
897 WindowsTip 패킷을 훔치는 ARP Spoofing 공격 탐지 툴과 방어방법 4 2013.01.05 13573
896 컴퓨터잡담 파일도우미삭제(익스플로러 시작시 log.pluspage.co.kr로 접속 후 홈으로 이동하는 증상) 1 4 file 2013.01.15 16610
895 Server 파일 업로드 폴더 변경 2015.07.13 1953
894 컴퓨터잡담 파이썬의 IF문 사용시 실행값에서 오류발생시 진행하는 예외처리 방법 2021.06.15 2870
893 파이썬 파이썬을 이용하여 매크로 만들기 2023.01.13 9211
892 컴퓨터잡담 파이썬으로 키움증권 open api 사용해보기 file 2021.08.24 1490
891 파이썬 파이썬으로 비활성화 된 창의 이미지를 캡쳐하는 방법 2023.02.25 4003
890 컴퓨터잡담 파이썬으로 네이버 증권정보 추출하기 2021.06.05 1874
889 파이썬 파이썬으로 captCha 분석하여 웹사이트 소스 가져오기 2023.03.25 19041
888 파이썬 파이썬에서 인식이 잘되는 OCR 종류 2023.09.15 77488
887 파이썬 파이썬에서 captCha 분석 프로그램을 만들 수 있을까? 2023.03.25 11724
886 컴퓨터잡담 파이썬(python) 자주 사용하는 명령 모으기 2021.09.03 884
885 파이썬 파이썬 화면 캡쳐하기 2022.11.26 19343
884 컴퓨터잡담 파이썬 한우정액 정보 스프레드로 추출하기 file 2021.06.05 1625
883 파이썬 파이썬 팍스넷 추천종목 특정페이지 크롤링 2021.09.23 3466
882 컴퓨터잡담 파이썬 파일로 읽어올 때 \n이 \\n으로 변경되는 현상 대처방법 2021.08.15 1341
881 파이썬 파이썬 파이인스톨러 설치하기 2022.05.08 21421
880 컴퓨터잡담 파이썬 파라미터 변수값 전달받기 2021.06.16 2040
879 컴퓨터잡담 파이썬 키움증권 open api 스크랩 2021.09.02 969
878 파이썬 파이썬 키움증권 open api 분할매매 주문하기 2021.09.07 2340
Board Pagination Prev 1 2 3 4 5 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소