{KEY1:VALUE1, KEY2:VALUE2, ...}
a={2:'c'} 이고
a[3]='pqr' 이라고 입력한 뒤 a를 실행하면
{2:'c', 3:'pqr'}이 된다
a={'abc':3}
a['x']='y'
a['x']='pq'
라고 하면 key x의 value는 y에서 pq가 되고
{'abc':3, 'x':'pq'}가 된다
del a[key]를 하면 된다
만약 없는 key를 삭제하려고 del a[key]를 하면 key-error가 뜬다
리스트나 튜플에서는 인덱싱과 슬라이싱을 이용했는데, 딕셔너리는 한 가지 방법밖에 없다
a['key']를 써서 value값을 얻어내는 것이다
key는 고유한 값이기 때문에 중복되는 key값 설정하면 마지막 하나를 제외한 나머지 것들이 무시된다
딕셔너리 추가에서 내가 기술한 내용이네 ㅋ;;
key에 리스트를 쓸 수 없다. 다만 튜플은 쓸 수 있다.
아 여기서 알 수 있는 게 리스트는 유동적이고 튜플은 고정이니 key값으로 쓸 수 있겠구나
라는 걸 알 수 있다.
복습도 되고 좋다
keys 함수를 사용한다
a라는 딕셔너리의 key리스트를 보려면 a.keys()를 쓰면된다
특정 key를 뽑아내려고 숫자나, key값을 괄호안에 입력하면 takes no arguments 에러가 난다
values 함수를 사용한다
a라는 딕셔너리의 value리스트를 보려면 a.values()를 쓰면 된다
특정 key를 뽑아내려고 숫자나, key값을 괄호안에 입력하면 takes no arguments 에러가 난다
items 함수를 사용한다
a라는 딕셔너리의 key-value를 얻고 싶다면 a.items()를 쓰면 된다
특정 key를 뽑아내려고 숫자나, key값을 괄호안에 입력하면 takes no arguments 에러가 난다
clear 함수를 사용한다
a라는 딕셔너리 key-value를 모두 지우며, 출력하면 none이 나온다
위에서 a[key]로 value를 얻는다고 기술했는데, get이라는 함수로도 추출할 수 있다
다만 a[key]에서 key가 없는 경우는 오류가 발생하며, get(key)를 하면 none을 반환한다
in 함수를 쓴다
이거 sql에서도 비슷하게 쓰는 거 같은데;;
key in a 했을 때, a안에 key가 있으면 true, 없으면 false
일단, 집합(set)은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다
집합자료형은 set을 이용해 만든다
s1 = set([1,2,3])
s2 = set("hello")
괄호안의 리스트를 넣어서 만들 수 있고, 문자열로 입력할 수 있다
set 괄호안에는 1개의 arguments만 선언할 수 있으며, int는 할 수 없다
그런데 s2를 출력하면 {'e', 'h', 'l', 'o'} 혹은 순서가 뒤 바뀌어서 나오고 l이 하나밖에 안나온다
왜 그럴까?
여기서 set의 가장 큰 특징 2가지가 나온다
리스트나 튜플은 순서가 정해져 있어서 인덱싱/슬라이싱이 되는데, set은 허용하지 않는다정해져 있어서 인덱싱/슬라이싱이 되는데, set은 허용하지 않는다
subscriptable 에러 발생함
그래서 인덱싱, 슬라이싱을 하려면 리스트 혹은 튜플로 만들어야 한다
두개의 집합형 a,b가 있을 때
intersection 개오랜만 ㅋㅋ;
값 1개 추가할 떄 사용
값 여러개 추가할 때 사용
s1=set([1,2,3])
s1.update('사',5,['육','칠','팔'])
를 해서 run하면 int is not iterable 이라는 오류가 난다
반복불가능하다는 뜻인데 무슨 뜻인가 하고찾아보니
단일객체가 아닌 여러개의 요소를 가진 객체(리스트, 튜플 등)가 아니라서 그런 거 라고 한다
출처 : http://codingschool.info/rboard2/index.php?type=view&table=start_python&num=53
특정값 제거하려고 할 때 사용한다
s1.remove()를 하면 되는데, 삭제하려는 값이 문자열인지 숫자인지 잘 생각하자
불/변수는 간단하게 읽고, 포스팅은 안 할 예정