Skip to content
파이썬
2021.09.13 18:14

파이썬 dictionary 딕셔너리 조작

조회 수 2538 추천 수 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
번호 분류 제목 날짜 조회 수
837 파이썬 파이썬 pyautogui 화면에 여러개의 동일한 이미지가 있을 때 n번째 이미지 선택하기 2023.02.12 5041
836 파이썬 파이썬 pyautogui 자주쓰는 이미지 서치 def 지정하기 2023.02.12 5259
835 컴퓨터잡담 파이썬 pyautogui 명령어 2021.06.06 1559
834 파이썬 파이썬 openyxl 엑셀파일(xlsx) 저장하기 2021.09.11 2596
833 파이썬 파이썬 ModuleNotFoundError: No module named 'pip' 갑자기 나타난 오류! 2022.02.13 4108
832 컴퓨터잡담 파이썬 JSON으로 받아온 데이터의 Key 값 가져오기 2021.08.27 10885
831 컴퓨터잡담 파이썬 IF문 2021.06.16 5107
830 컴퓨터잡담 파이썬 gspread 사용법 file 2021.06.25 11549
829 파이썬 파이썬 googleapiclient 모듈이 설치가 안될때 해결방법 1 2022.03.27 9873
828 컴퓨터잡담 파이썬 FTP 업로드/다운로드 하기 2021.07.31 3399
827 컴퓨터잡담 파이썬 for문으로 자동변수 생성하기 2021.06.24 3790
826 컴퓨터잡담 파이썬 find, select 사용법 2021.07.30 1441
825 파이썬 파이썬 easyocr 이미지 문자 인식 2023.01.16 10312
» 파이썬 파이썬 dictionary 딕셔너리 조작 2021.09.13 2538
823 파이썬 파이썬 datetime 모듈로 초간단 날짜 표현하기 2021.09.11 2714
822 컴퓨터잡담 파이썬 Beautifulsoup 웹크롤링 차단시 해결방법 2021.07.23 1474
821 컴퓨터잡담 파이썬 Beautifulsoup html의 특정 주소만 가져오기 file 2021.06.14 2986
820 파이썬 파이썬 any, all 사용하기(배열데이터 안에 값이 하나라도 있는지 또는 모두 있는지 비교) 2021.09.11 1956
819 컴퓨터잡담 티맥스OS 무료배포도 판매 수익의 세배이상 가능하다 2 2009.07.26 24566
818 컴퓨터잡담 티맥스 윈도우가 살아남는 방법 5 1 2009.07.24 22701
Board Pagination Prev 1 ... 3 4 5 6 7 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소