[python] 딕셔너리 응용하기

anjiyoo·2024년 3월 6일

Python

목록 보기
24/41
post-thumbnail
메소드설명
setdefault(키,기본값)딕셔너리에 키-값 쌍을 추가, 키만 지정하면 값에 None을 저장
update(키=값)딕셔너리에서 키의 값을 수정, 딕셔너리에 키가 없으면 키-값 쌍을 추가
pop(키)딕셔너리에서 특정 키-값 쌍을 삭제한 뒤 값을 반환, del 딕셔너리[키]와 같음
popitem()딕셔너리에서 임의의 키-값 쌍을 삭제하고 해당 키-값 쌍을 튜플로 반환
clear()딕셔너리의 모든 키-값 쌍을 삭제
get(키)딕셔너리에서 특정 키의 값을 가져옴
items()items는 딕셔너리의 키-값 쌍을 모두 가져옴
copy()딕셔너리를 복사하여 새 딕셔너리 생성
dict.fromkeys(키리스트)리스트(튜플)로 딕셔너리를 만듦, 키 리스트만 지정하면 값은 모두 None이 저장됨

1.딕셔너리 조작하기

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

setdefault: 키-값 쌍 추가
update: 키의 값 수정, 키가 없으면 키-값 쌍 추가
x = {'a':10, 'b':20, 'c':30}
x.setdefault('d',40)

1-2.딕셔너리에 키 수정하기 update

update(키=값)
update(키:값, 키:값)
update([키,값],[키,값])
x = {'a':10, 'b':20, 'c':30, 'd':40}
x.update(a=100)

x.update({'a':20, 'b':10})

x.update(['c':40, 'd':30])

1-3.딕셔너리 키-값 쌍 삭제하기 pop(키)

pop()
pop(키,기본값)
del[키]
x = {'a':10, 'b':20, 'c':30, 'd':40}
x = pop('a')

x.pop('d',40)

del x['b']

1-4.딕셔너리에서 임의의 키-값 쌍 삭제하기 popitem

popitem()  # 딕셔너리에서 임의의 키-값 쌍을 삭제한 뒤 삭제한 키-값 쌍을 튜플로 반환
x = {'a':10, 'b':20, 'c':30, 'd':40}
x.popitem()

1-5.딕셔너리의 모든 키-값 쌍을 삭제하기 clear

x = {'a':10, 'b':20, 'c':30, 'd':40}
x.clear()

1-6.딕셔너리에서 값 가져오기 get items keys values

get(키)  # 특정 키의 값 가져옴
get(키,값) # 키가 없으면 기본값으로 지정한 0 반환

items()  # 키-값 쌍으로 가져옴
keys()  # 키 가져옴
values()  # 값 가져옴
x = {'a':10, 'b':20, 'c':30, 'd':40}
x.get('a')
x.get('f')

x.items()
x.keys()
x.values()

1-7.리스트와 튜플로 딕셔너리 만들기

dict.fromkeys(키리스트)  # 키 리스트로 딕셔너리를 생성하며 값은 모두 None
dict.fromkeys(키리스트,값)
keys = ['a','b','c','d']
x = dict.fromkeys(keys)

2.반복문으로 딕셔너리의 키-값 쌍을 모두 출력

for 키, 값 in 딕셔너리.items():
	반복할 코드
x = {'a':10, 'b':20, 'c':30, 'd':40}
for key, value in x.item():
	print(key, value)

2-1.딕셔너리의 키만 출력하기 key()

items()  # 키-값 쌍으로 가져옴
keys()  # 키 가져옴
values()  # 값 가져옴
x = {'a':10, 'b':20, 'c':30, 'd':40}
for key, value in x.key():
	print(key, end='')

2-2.딕셔너리의 값만 출력하기 value

x = {'a':10, 'b':20, 'c':30, 'd':40}
for key, value in x.values():
	print(value, end='')

3.딕셔너리 컴프리헨션 사용하기

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

3-1.딕셔너리 컴프리헨션에서 if 조건문 사용하기

  • 딕셔너리 표현식에서 if 조건문을 사용하여 삭제할 값을 제외하면 됨
# 키-값 삭제하기
x = {'a':10, 'b':20, 'c':30, 'd':40}
x = {key:value for key, value in x.items() if value != 20}

4.딕셔너리 안에서 딕셔너리 사용하기

딕셔너리 = {키1:{키A:값A},키2:{키A:값B}}

# 딕셔너리 안에 들어있는 딕셔너리 접근하기
딕셔너리[키][키]
딕셔너리[키][키] = 값

5.딕셔너리의 할당과 복사

  • 딕셔너리를 다른 변수에 할당하면 딕셔너리는 두 개가 아닌 한 개
  • 딕셔너리를 두개로 만들려면 copy() 메소드로 복사
x = {'a':0, 'b':0, 'c':0, 'd':0}
y = x
x is y  # 변수이름만 다를 뿐 같은 객체

5-1.중첩 딕셔너리의 할당과 복사

x = {'a':{'python':'2.7'}, 'b':{'python':'3.6'}}
y = x.copy()

y['a'][['python'] = '2.7.15'
x
y
  • 중첩 딕셔너리를 완전히 복사하려면 copy 메소드 대신 copy 모듈의 deepcopy 함수를 사용해야 함
x = {'a':{'python':'2.7'}, 'b':{'python':'3.6'}}
import copy
y = copy.deepcopy(x)
y['a']['python'] = '2.7.15'
x
y
profile
기록으로 흔적을 남기는 것을 좋아합니다

0개의 댓글