티스토리 뷰
{'name': 'cho', 'address': 'Seoul'}
>>> e["address"]
'Seoul'
>>> e["name"]
'cho'
>>>
(딕셔너리, 리스트, 정수, 문자)
>>> a={'test':'asdfadfad'}
>>> a
{'test': 'asdfadfad'}
>>> type(a)
<class 'dict'> -- type값 dict표현
>>>
★딕셔너리 자료형 예제
☆딕셔너리 예제 풀이
>>> a = {"name": "Python", " phone":"01199993323", "age":"28" , "address":"서울시 강남구","hobby": ["게임","독서","야구","축구"]}
>>> a
{'name': 'Python', ' phone': '01199993323', 'age': '28', 'address': '서울시 강남구', 'hobby': ['게임', '독서', '야구', '축구']}
>>>
※ 변수이름 만들기
→ 실제 프로그래밍에서는 신중히 정해야함
(변수가 가지고 있는 내용을 추측학 수 있는 것으로 해야함)
01-1. 딕셔너리 요소 추가
▶딕셔너리 요소 추가 형태
a[Key_Value] = Value
※주의 : Key_Value는 index가 아님
▶ 데이터의 추가 기준은 key
(다른점 : 리스는는 index)
>>> e={}
>>> type(e)
<class 'dict'> -- type dictionary표현
>>>
>>> e['name']='cho'
>>> e
{'name': 'cho'}
>>> e[0]=123 --- 리스트와 구분해서 사용하기
리스트는 index로 자리값에 해당 값을 넣음
>>> e
{'name': 'cho', 0: 123}
>>> >>>
>>> e['address']="Seoul"
>>> e
{'name': 'cho', 0: 123, 'address': 'Seoul'} --순서 상관없음
-------요소 추가 연습
>>> e={}
>>> e['name']='cho'
>>> e['address']="Seoul"
>>> e
{'name': 'cho', 'address': 'Seoul'}
>>> e["name"]
'cho'
>>> type(e["name"]) --- type str(문자열)
<class 'str'>
>>>
>>> e[1] -----1이라는 key는 없기때문에 에러가 남
Traceback (most recent call last):
File "<pyshell#52>", line 1, in <module>
e[1]
KeyError: 1
>>>
01-2. 딕셔너리 요소 삭제
▶딕셔너리 요소 삭제 형태
del a[Key_Value]
※ Key_Value 가 존재하지 않으면 오류가 발생
>>> e
{'name': 'cho', 'address': 'Seoul', 0: 123}
>>> del e[0]
>>> e
{'name': 'cho', 'address': 'Seoul'}
>>> del e["name"]
>>> e
{'address': 'Seoul'}
>>> del e["address"]
>>> e
{}
>>>
→ 순서가 없는 자료형임으로 key만 가지고 데이터를 가져올 수 있는 함수 필요
01-3. 딕셔너리의 활용
▶ 딕셔너리는 하나의 변수에 관련된 정보를 모아서 관리
(저장된 값을 하나로 관리 할 수 있음)
⊙ json정보전달에 유용한 형태 (json.org)
→ 딕셔너리의 형태로 사용됨
※ 한줄이 아닌 여러줄로 대칭적으로 쓰면 자료의 구조가 눈에 잘 보임
>>> e={}
>>> e["name"]="cho"
>>> e["age"]=22
>>> e["address"]="seoul"
>>> e
{'name': 'cho', 'age': 22, 'address': 'seoul'}
>>> e["nane"] ---오류남 없는 key
Traceback (most recent call last):
File "<pyshell#89>", line 1, in <module>
e["nane"]
KeyError: 'nane'
>>>
01-4. 딕셔너리 연산
▶key와 Value 추출
>>> e
{'name': 'cho', 'age': 22, 'address': 'seoul'}
>>> e.keys() ---- key만 추출
dict_keys(['name', 'age', 'address'])
>>> type(e.keys())
<class 'dict_keys'>
>>> list(e.keys()) --- list
['name', 'age', 'address']
>>> f=list(e.keys()) --- list로 만들어서 사용
>>> f
['name', 'age', 'address']
>>> e[f[0]] -- index
'cho'
>>> e[f[1]]
22
>>> e[f[2]]
'seoul'
>>>
>>> e.values() --value 추출
dict_values(['cho', 22, 'seoul'])
>>>
▶key를 통해서 Value 가져올 수 있음
>>> e
{‘Cho': {'name': 'Cho', 'addr': 'seoul', 'age': 40}, 'Park': {'name': 'Park', 'addr': 'busan', 'age': 32}}
>>> e.get('Cho’)
{‘name’: ‘Cho’, ‘addr’: ‘seoul’, ‘age’: 40}
>>> e.get('Park')
{'name': 'Park', 'addr': 'busan', 'age': 32}
>>> e.get('PARK') --Key 가 존재하지 않는 경우라도 오류가 발생하지 않음
>>> e.get('PARK', 'DEFAULT') --Key 가 존재하지 않는 경우 , 두번쨰 인자를 반환.
'DEFAULT'
▶key가 존재하는지 조사
>>> member
{‘Cho': {'name': 'Cho', 'addr': 'seoul', 'age': 40}, 'Park': {'name': 'Park', 'addr': 'busan', 'age': 32}}
>>> 'Cho’ in member
True
>>> ‘PARK’ in member
False
>>> 'Cho' not in member
False
>>> 'Park' not in member
False
>>>
→단독으로 쓰는 것은 큰 의미가 없고 주로 판단할 때 쓰임
★딕셔너리 연습 예제
☆예제 풀이
①
>>> d={"cho":{"영어":87,"국어":57,"수학":86},"Kim":{"영어":94,"국어":69,"수학":78},"Lee":{"영어":96,"국어":77,"수학":95},"Park":{"영어":86,"국어":76,"수학":"99"}}
②
>>> d={"cho":{"영어":87,"국어":57,"수학":86}}
>>> d["cho"]
{'영어': 87, '국어': 57, '수학': 86}
>>> d["kim"]={"영어":94,"국어":69,"수학":78} -- kim 요소 추가
>>> d
{'cho': {'영어': 87, '국어': 57, '수학': 86}, 'kim': {'영어': 94, '국어': 69, '수학': 78}}
>>> d["lee"]={"영어":96,"국어":77,"수학":95} -- lee 요소 추가
>>> d
{'cho': {'영어': 87, '국어': 57, '수학': 86}, 'kim': {'영어': 94, '국어': 69, '수학': 78}, 'lee': {'영어': 96, '국어': 77, '수학': 95}}
>>> d["Park"]={"영어":86,"국어":76,"수학":"99"} -- park 요소 추가
>>> d
{'cho': {'영어': 87, '국어': 57, '수학': 86}, 'kim': {'영어': 94, '국어': 69, '수학': 78}, 'lee': {'영어': 96, '국어': 77, '수학': 95}, 'Park': {'영어': 86, '국어': 76, '수학': '99'}}
>>>
02. 집합 자료형
▶ 순서가 없음
→ 순서가 없기 때문에 index 접근이 불가
▶ 중복이 허락되지 않음
▶ 집합 자료형 형태
a = set()
>>> a=set([1,2,3,4,1,2])
>>> a
{1, 2, 3, 4}
>>> type(a)
<class 'set'> -- type set
>>>
▶ 중복되는 요소가 있는 경우 하나만 남기고 제거
>>> b=set("Hello World")
>>> b
{'r', 'd', ' ', 'o', 'W', 'H', 'e', 'l'} -- 중복되는 l ,o 제거
>>>
>>> c=set(["Hello","World","!","!"])
>>> c
{'World', 'Hello', '!'} -- 중복되는 ! 제거
>>>
02-1. 집합 자료형의 요소 추가
▶ 단일 요소 추가의 형태
변수.add( x )
>>> c.add("You")
>>> c
{'World', 'Hello', '!', 'You'}
※ 똑같은 값을 집어넣으면 중복되기 때문에 추가 안됨
>>> c
{'World', 'Hello', '!', 'You'}
>>> c.add("Hello")
>>> c
{'World', 'Hello', '!', 'You'}
>>>
▶여러개의 요소 추가 형태
변수.update( x )
>>> c
{'World', 'Hello', '!', 'You'}
>>> c.update(["i","He","She"])
>>> c
{'Hello', '!', 'You', 'He', 'World', 'i', 'She'}
>>>
02-2. 집합 자료형의 요소 삭제
▶ 요소 삭제 형태
변수.remove( x )
>>> c.remove("You")
>>> c
{'Hello', '!', 'He', 'World', 'i', 'She'}
>>> c.remove("i")
>>> c
{'Hello', '!', 'He', 'World', 'She'}
>>>
▶ 전체 삭제 형태
del
>>> del c --c의 모든 자료가 다 삭제됨
>>> c -- 모든 자료가 삭제되었기 때문에 오류남
Traceback (most recent call last):
File "<pyshell#141>", line 1, in <module>
c
NameError: name 'c' is not defined
>>>
02-3. 집합 자료형의 리스트화
▶ 집합 자료형은 순서가 없고 중복되지 않음
→index로 접근 불가
>>> b
{'r', 'd', 'a ', 'o', 'W', 'H', 'e', 'l'}
>>> b[0] -순서가 없기때문에 인덱스로 접근 불가
오류가 남
Traceback (most recent call last):
File "<pyshell#146>", line 1, in <module>
b[0]
TypeError: 'set' object does not support indexing
▶ 리스트로 접근
>>> b
{'r', 'd', 'a ', 'o', 'W', 'H', 'e', 'l'}
>>> e=list(b)
>>> e
['r', 'd', 'a ', 'o', 'W', 'H', 'e', 'l']
>>> e[0]
'r'
>>> e[1]
'd'
>>> e[2]
'a '
02-4. 집합 자료형의 연산
▶집합자료형은 집합이므로
교집합,차집합,합집합이 가능하다.
▶교집합
a+b
a.intersection(b)
>>> a=set([1,2,4,5,6])
>>> b=set([2,4,3,5,7])
>>> a&b
{2, 4, 5}
>>> a.intersection(b)
{2, 4, 5}
▶차집합
a-b
a.difference(b)
>>> a=set([1,2,4,5,6])
>>> b=set([2,4,3,5,7])
>>> a-b
{1, 6}
>>> a.difference(b)
{1, 6}
>>>
▶합집합
a | b
a.union(b)
>>> a=set([1,2,4,5,6])
>>> b=set([2,4,3,5,7])
>>> a|b
{1, 2, 3, 4, 5, 6, 7}
>>> a.union(b)
{1, 2, 3, 4, 5, 6, 7}
★집합 자료형의 연산 예제
☆예제 풀이
>>> a=set(["cho","park","lee","kim"])
>>> b=set(["kim","lee","cha","na","won"])
①
>>> a&b
{'lee', 'kim'}
②
>>> a|b
{'lee', 'park', 'won', 'na', 'cha', 'cho', 'kim'}
③
>>> a-b
{'park', 'cho'}
>>> b-a
{'won', 'na', 'cha'}
>>>
'Programing > Python' 카테고리의 다른 글
Python - 07. 반복문 (0) | 2017.03.21 |
---|---|
Python - 06. 조건문 (0) | 2017.03.21 |
Python - 04. List(리스트).Tuple(튜플) (0) | 2017.03.15 |
Python - 03. 자료형 . 문자열.문자열 연산 (0) | 2017.03.15 |
Python - 02. 변수.연산자.사칙연산 (0) | 2017.03.15 |