리스트는 서랍장이라고 기억
Mutable(리스트, 딕셔너리, 집합)
Immutable(정수, 실수, 문자열, 튜플)
튜플은 인덱스 값 삭제나 값 변경 불가능 함
튜플은 변하지 않는데 리스트 처럼 더하고 슬라이싱 할 수는 있음
리스트+튜플은 불가능 함
튜플엔 sort 없음
딕셔너리
해시, 맵, json 이런것들이 다 딕셔너리랑 같은 형태
키:밸류로 이뤄진 자료
이름표가 붙어있는 사물함이라는 것
API에 자주 활용됨
리스트도 추가 가능
dic = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
print(dic['birth'])
하면 밸류값을 출력하고 밸류값 두개를 출력도 가능
키가 고유한 값이므로 키가 중복되면 안되고 변형되어서도 안된다.
Keys 키 값들을 리스트로 만드는 명령어
반복문을 쓰기 위해 keys 사용
Items 함수 - 키, 밸류값 둘다 얻음
Clear 함수 - 딕셔너리 비우기
Get함수 - 키로 밸류값 얻기
키값 없으면 에러가 남 인덱스랑 파인드 느낌
a.get('nokey', '정보없음')
이렇게 할경우 키 값 없으면 '정보없음'이뜬다
In 함수 - a라는 딕셔너리에 해당 키값이 있는지? True/False 값으로 결과 나옴
Pop
집합
>>> s1 = set([1, 2, 3])
>>> s1
{1, 2, 3}
>>> s2 = set("Hello")
>>> print(s2)
집합으로 만들어서 출력하면
{'e', 'H', 'l', 'o'}
이렇게 출려됨
집합엔 순서가 없기에 인덱스도 없다
중복도 허용 안한다.
집합->리스트 못바꿈
집합->튜플로 바꿀수 있다.
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 & s2)
print(s1.intersection(s2))
Intersection 함수를 통해 교집합도 구할수 있다.
집합쓸 때 파이썬만큼 편한게 없다.
합집합
print(s1 | s2 )
print(s1.union(s2))
{1, 2, 3, 4, 5, 6, 7, 8, 9}
차집합
print(s1 - s2)
{1, 2, 3}
print(s2 - s1)
{8, 9, 7}
값 1개 추가하기 - add
>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}
값 여러 개 추가하기 - update
>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}
집합에서 add는 안된다 에러가 뜸
특정 값 제거하기 - remove
>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1 {1, 3}
a = False
print(type(a))