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)

 

 

 

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

?

  1. 크롬에서 플래시 사용하기

  2. [크롬] 원격 데스크톱 외부접속시 "서버에서 참조를 반환했습니다." 오류 해결법

  3. [REMIX OS]How to Edit of REMIX OS build.prop? 수정방법

  4. CCTV VIEWEASYV2

  5. ISO 파일을 USB에 굽는 방법 [4GB 넘는 ISO 파일 USB에 굽는 방법]

  6. CPU-Z

  7. nVIDIA GTX750Ti 드라이버

  8. 구글 앱스 스크립트(Google Apps Script) 외부에서 실행하기

  9. 구글 앱스 스크립트(Google Apps Script) 외부에서 실행하기

  10. 윈도우 PC에서 안드로이드 앱 실행

  11. 구글캘린더 CSV 파일로 일괄 기록하기

  12. 메이플스토리 입력신호범위초과(out of range)에러메세지 해결방법

  13. Autohotkey] 키보드 후킹 테스트

  14. 마인크래프트 게임충돌 해결방법

  15. autohotkey command-line 실행시 파라미터 설정

  16. 자바스크립트 내가 자주 사용하는 함수모음

  17. 자바스크립트 명령어

  18. 스프레드시트 autohotkey html gmail 스마트폰 이용하여 핑로스 즉시 알림받기

  19. javascript만으로 html간 변수값 주고받기

  20. google spreadsheets html form post로 전달받기

Board Pagination Prev 1 ... 6 7 8 9 10 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소