*이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*
1. 딕셔너리(Dictionary)
1-1. 딕셔너리 자료형
딕셔너리(Dictionary)는 키(Key)-값(Value)처럼 한 쌍의 대응관계를 나타내는 자료형입니다. 딕셔너리는 리스트, 튜플처럼 순차적으로 요소값을 구하지 않고, 키값만을 이용하여 value값을 구합니다. 리스트처럼 가변적(variable)이면서, {}를 사용하여 표현합니다. 딕셔너리 자료형은 다른 말로 연관 배열(associative array) 또는 해시(hash)라고도 합니다. 코드짤때, hashable이라는 용어가 나오면 딕셔너리 자료형이라고 생각하면 됩니다.
#딕셔너리
a={}
print(a)
print(type(a))
b={1:'son',2:'fam',3:'mam'}
print(b)
print(type(b))
# 키값으로 value값 뽑기
print(b[1])
print(b[2])
딕셔너리 자료형은 요소값을 추가하거나 변경가능합니다.
# 새로운 키값 생성과 수정
a={1:'coke'}
print(a)
a[2]='pepsi'#추가
print(a)
a[1]='cola' #수정
print(a)
딕셔너리 자료형에서 키값을 리스트 자료형으로 사용할 수 없습니다.
#키값 리스트 에러
a[[1,2,3]]=['one','two','three']
len()함수를 이용해, 딕셔너리 요소값을 계산할 수 있습니다.
# len() 계산
print(len(a))
1-2. 딕셔너리에서 사용하는 메서드
딕셔너리 자료형에서 주로 사용하는 메서드는 다음과 같습니다.
- len()
- keys()
- values()
- items()
- get()
- pop()
Keys() 메서드는 딕셔너리의 모든 키값을 반환합니다.
#keys()
print(a)
print(a.keys())
Values() 메서드는 딕셔너리의 모든 value값을 반환합니다.
#values()
print(a.values())
Items() 메서드는 딕셔너리의 모든 키,value값을 쌍으로 반환합니다.
#items()
print(a.items())
Get()와 메서드는 특정 키에 대한 value값을 반환하고, 입력한 키에 대응되는 value값이 딕셔너리 자료형에 없을 경우 None을 반환합니다.
#get()
print(a.get(1))
print(a.get(12))
print(a.get(5,'해당 value값 없음'))
Pop() 메서드는 특정 키에 대한 값을 제거하고 그 값을 반환합니다. 키가 없다면 에러가 나옵니다.
#pop()
c=a.pop(2)
print(a)
print(c)
In 연산자를 이용해, 딕셔너리에 특정 키가 있는지 확인할 수 있습니다. 결과는 bool자료형으로 참,거짓을 판별합니다.
#in연산자
a={1:'one',2:'two',3:'three',4:'four'}
print(3 in a)
print('hash' in a)
2. 집합(Set) 자료형
집합(set)자료형은 이름그대로 집합모양처럼 연관된 것으로 쉽게 처리하기 위해 만든 자료형입니다. 중복되지 않는 항목들의 컬렉션입니다.
2-1. 집합 자료형 형태
# 집합 자료형
a={}
print(a)
print(type(a)) # {}에 메모리값을 채우지 않는다면 딕셔너리 타입
a={1,3,5,7,9}
print(a)
print(type(a))
set()함수로 리스트 자료형을 집합 자료형으로 변환할 수 있습니다.
#set()함수로 리스트->집합 변환
ee=set([2,3,4,5])
print(ee)
print(type(ee))
집합 자료형은 중복자료를 인정하지 않으며, 딕셔너리와 마찬가지로 순서가 없는 자료형입니다. 인덱스 위치 순서가 없습니다.
#중복자료X
a3={1,1,1,1,1,3,5}
print(a3)
#인덱스 위치 순서X
a4=[1,3,5,4,2,9,11,7,6,4]
print(a4)
a5=set(a4)
print(a5)
2-2. 집합 자료형의 메서드
집합자료형에서 사용되는 메서드는 다음과 같습니다.
- Add()
- Update()
- Remove()
- Discard()
- Copy()
add() 메서드는 집합에 하나씩 요소를 추가합니다.
#add()
print(a)
a.add(135)
print(a)
a.add(3.15)
print(a)
update() 메서드는 집합에 여러 항목을 추가합니다.
#update()
a={1,3,5,7,9}
a.update([2,4,6,8])
print(a)
remove() 와 discard() 메서드는 집합의 요소값을 제거합니다. 단 차이점이 있습니다.
- remove() 메서드: 제거하려는 요소값이 없다면 에러 발생
- discard() 메서드: 제거하려는 요소값이 없더라도 에러가 발생하지 않음
#remove()
a={1,3,5,7,9}
a.remove(2) #에러발생
#discar()
a={1,3,5,7,9}
a.discard(2)
print(a) # 에러없음
copy()메서드는 집합을 복사합니다.
#copy()
a={1,2,3}
b=a.copy()
print(a)
print(b)
print(id(a)) # a !=b
print(id(b)) # 카피하더라도 메모리값 주소는 다름
2-3. 집합 이미지의 메서드
집합 자료형을 집합의 이미지, 정의처럼 연산할 수 있는 메서드가 있습니다. 집합형태의 메서드와 같은 역할의 연산자들은 다음과 같습니다.
- union() , | 연산자로도 사용
- Intersection, & 연산자로도 사용
- Difference, - 연산자로도 사용
- Symmetric_difference, ^ 연산자로도 사용
union() 메서드와 | 연산자(shift + \)는 두 집합간의 합집합처럼 사용합니다.
#Union(), |연산자
a={1,3,5,7}
b={+2,4,6,8}
c=a.union(b)
print(c)
c=a|b
print(c)
intersection() 메서드와 & 연산자는 두 집합 간의 교집합처럼 사용됩니다.
#intersection(), &연산자
a={1,3,5,7}
b={+2,4,6,8}
c=a.intersection(b)
print(c)
c=a&b
print(c)
difference() 메서드와 - 연산자는 A집합-교집합, 즉 차집합처럼 사용됩니다.
#difference(), -연산자
a={1,3,5,7}
b={+2,4,6,8}
c=a.difference(b)
print(c)
c=a-b
print(c)
symmetric_difference() 메서드와 ^연산자는 합집합-교집합=대칭 차집합 처럼 사용됩니다.
#symmetric_difference(), ^연산자
a={1,3,5,7}
b={+2,4,6,8}
c=a.symmetric_difference(b)
print(c)
c=a^b
print(c)
참고: difference는 차이점을, symmetric은 대칭을 뜻합니다.
'Python 기초' 카테고리의 다른 글
파이썬 기초(8)-조건문 (0) | 2024.03.14 |
---|---|
파이썬 기초(7)-연산자 (2) | 2024.03.14 |
파이썬 기초(5)-튜플(Tuple) 자료형 (0) | 2024.03.13 |
파이썬 기초(4)-컬렉션 타입과 리스트(List) 자료형 (0) | 2024.03.13 |
파이썬 예제(과제)-1. 부동소수점 문제 (0) | 2024.03.12 |