데이터구조 3
데이터구조
사전형
d = {'x': 10, 'y': 20}
print(d)
> {'x': 10, 'y': 20}
print(type(d))
> <class 'dict'>
print(d['x'])
> 10
print(d['y'])
> 20
d['x'] = 100
print(d['x'])
> 100
d['x'] = 'xxxx' #문자열도 가능
print(d)
> {'x': 'xxxx', 'y': 20}
d['z'] = 200 # key와 값 추가
print(d)
> {'x': 'xxxx', 'y': 20, 'z': 200}
d[1] = 10000
print(d)
> {'x': 'xxxx', 'y': 20, 'z': 200, 1: 10000}
#dict 만드는 다른방법 2
a = dict(a=10, b=20)
print(a)
> {'a': 10, 'b': 20}
#dict 만드는 다른방법 3
b = dict([('a', 10), ('b', 20)])
print(b)
> {'a': 10, 'b': 20}
사전형 - 2, 매소드
d = {'x': 10, 'y': 20}
print(d)
> {'x': 10, 'y': 20}
print(d.keys()) # key 값만 출력
> dict_keys(['x', 'y'])
print(d.values()) # value 값만 출력
> dict_values([10, 20])
d2 = {'x': 1000, 'j': 500}
print(d)
> {'x': 10, 'y': 20}
print(d2)
> {'x': 1000, 'j': 500}
d.update(d2) # d2를 d에 덮어쓰기(overwriting)
print(d)
> {'x': 1000, 'y': 20, 'j': 500}
print(d['x']) # key 값이 없으면 에러 발생
> 1000
print(d.get('x')) # key 값이 없으면 return 값 None
> 1000
print(d['z'])
! error : z 가 없다고 나옴, # KeyError: 'z'
z = d.get('z')
print(z)
> None
print(type(z))
<class 'NoneType'>
d = {'x': 1000, 'y': 20, 'j': 500}
print(d)
> {'x': 1000, 'y': 20, 'j': 500}
d.pop('x') # 키로 값 꺼내기
print(d)
> {'y': 20, 'j': 500}
print(d.pop('x')) # 값이 있음. 그러면서 빠짐
> 1000
d = {'x': 10, 'y': 20}
print(d.pop('x'))
print(d)
> 10
{'y': 20}
# 위를 이용하면 키 값을 바꿀 수 있음 물론 순서는 바뀜
'x'를 'z' 변경
d = {'x': 10, 'y': 20}
d['z'] = d.pop('x')
print(d)
> {'y': 20, 'z': 10}
del d['y'] # 키로 값 지우기
print(d)
> {'j': 500}
d = {'a': 100, 'b': 200}
print(d)
> {'a': 100, 'b': 200}
d.clear() # 사전형 키, 값 다 지우고 사전형, {}만 남기
print(d)
> {}
d = {'a': 100, 'b': 200}
print(d)
> {'a': 100, 'b': 200}
d3= 'a' in d # dict d 안에 'a'있는지 판별
print(d3)
> True
사전형 - 3, 복사
# 참조전달
x = {'a': 1}
y = x
y['a'] = 1000
print(x)
> {'a': 1000}
print(y)
> {'a': 1000}
# 수치전달
x = {'a': 1}
y = x.copy()
y['a'] = 1000
print(x)
> {'a': 1}
print(y)
> {'a': 1000}
사전형 - 4, 예
d = {'x': 10, 'y': 20}
print(d)
> {'x': 10, 'y': 20}
print(type(d))
> <class 'dict'>
print(d['x'])
> 10
print(d['y'])
> 20
d['x'] = 100
print(d['x'])
> 100
d['x'] = 'xxxx' #문자열도 가능
print(d)
> {'x': 'xxxx', 'y': 20}
d['z'] = 200 # key와 값 추가
print(d)
> {'x': 'xxxx', 'y': 20, 'z': 200}
d[1] = 10000
print(d)
> {'x': 'xxxx', 'y': 20, 'z': 200, 1: 10000}
#dict 만드는 다른방법 2
a = dict(a=10, b=20)
print(a)
> {'a': 10, 'b': 20}
#dict 만드는 다른방법 3
b = dict([('a', 10), ('b', 20)])
print(b)
> {'a': 10, 'b': 20}
d = {'x': 10, 'y': 20}
print(d)
> {'x': 10, 'y': 20}
print(d.keys()) # key 값만 출력
> dict_keys(['x', 'y'])
print(d.values()) # value 값만 출력
> dict_values([10, 20])
d2 = {'x': 1000, 'j': 500}
print(d)
> {'x': 10, 'y': 20}
print(d2)
> {'x': 1000, 'j': 500}
d.update(d2) # d2를 d에 덮어쓰기(overwriting)
print(d)
> {'x': 1000, 'y': 20, 'j': 500}
print(d['x']) # key 값이 없으면 에러 발생
> 1000
print(d.get('x')) # key 값이 없으면 return 값 None
> 1000
print(d['z'])
! error : z 가 없다고 나옴, # KeyError: 'z'
z = d.get('z')
print(z)
> None
print(type(z))
<class 'NoneType'>
d = {'x': 1000, 'y': 20, 'j': 500}
print(d)
> {'x': 1000, 'y': 20, 'j': 500}
d.pop('x') # 키로 값 꺼내기
print(d)
> {'y': 20, 'j': 500}
print(d.pop('x')) # 값이 있음. 그러면서 빠짐
> 1000
d = {'x': 10, 'y': 20}
print(d.pop('x'))
print(d)
> 10
{'y': 20}
# 위를 이용하면 키 값을 바꿀 수 있음 물론 순서는 바뀜
'x'를 'z' 변경
d = {'x': 10, 'y': 20}
d['z'] = d.pop('x')
print(d)
> {'y': 20, 'z': 10}
del d['y'] # 키로 값 지우기
print(d)
> {'j': 500}
d = {'a': 100, 'b': 200}
print(d)
> {'a': 100, 'b': 200}
d.clear() # 사전형 키, 값 다 지우고 사전형, {}만 남기
print(d)
> {}
d = {'a': 100, 'b': 200}
print(d)
> {'a': 100, 'b': 200}
d3= 'a' in d # dict d 안에 'a'있는지 판별
print(d3)
> True
# 참조전달
x = {'a': 1}
y = x
y['a'] = 1000
print(x)
> {'a': 1000}
print(y)
> {'a': 1000}
# 수치전달
x = {'a': 1}
y = x.copy()
y['a'] = 1000
print(x)
> {'a': 1}
print(y)
> {'a': 1000}
키와 값이 있는 데이터에 사용한다
fruits = {
'apple': 100,
'banana': 200,
'orange': 300
}
print(fruits)
> {'apple': 100, 'banana': 200, 'orange': 300}
# 사과는 얼마 입니까?
print(fruits['apple'])
> 100
Author And Source
이 문제에 관하여(데이터구조 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sayxyoung/python-syntax-dict저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)