[Python 기초 #3] 튜플(tuple), 딕셔너리(dictionary)
* Tuple(튜플)
- 리스트는 []으로 둘러싸지만 튜플은 ()으로 둘러싼다.
- 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
- 괄호 생략 가능.
- 1개의 요소만을 가질 때는 요소 뒤에 콤마를 반드시 붙여야함.
그 외 나머지는 리스트와 동일히다.
t1 = ()
t2 = (1,)
t3 = (1, 2, 3)
t4 = 1, 2, 3
t5 = ('a', 'b', ('ab', 'cd')
* Dictionary(딕셔너리)
- Key와 Value를 한 쌍으로 갖는 자료형.
- 연관 배열(Associative array) 또는 해시(Hash)라고 불림
- value값으로 리스트를 쓸 수 있으나 key 값으로 리스트를 쓸 수 없다.
dic = {'name' : 'Eric', 'age' : 15}
print(dic['name'])
---------------------------------
Eric
1. 딕셔너리 쌍 추가하기
a = {1: 'a'}
a["name"] = "익명"
print(a)
-------------------------
{1: 'a', 'name': '익명'}
2. 딕셔너리 요소 삭제하기
a = {1: 'a'}
a["name"] = "익명"
a['age'] = ['30', '31']
print(a)
del a[1]
print(a)
-----------------------------------------
{1: 'a', 'name': '익명', 'age': ['30', '31']}
{'name': '익명', 'age': ['30', '31']}
* 딕셔너리 관련 함수
1. keys() : key만을 모아서 dict_keys 객체를 돌려준다.
- dict_keys 객체는 리스트 고유의 append, insert, pop, remove, sort 함수는 수행할 수 없다.
a = {1: 'a', 'name': '익명', 'age': ['30', '31']}
print(a.keys())
------------------------------------------------------
dict_keys([1, 'name', 'age'])
2. values() : dict_values 객체를 반환.
a = {1: 'a', 'name': '익명', 'age': ['30', '31']}
print(a.values())
------------------------------------------------
dict_values(['a', '익명', ['30', '31']])
3. list(dict_keys)와 list(dict_values)로 객체를 리스트로 만들 수 있다.
4. items() : key와 value의 쌍을 튜플로 묶은 값을 dict_items 객체로 반환.
a = {1: 'a', 'name': '익명', 'age': ['30', '31']}
print(a.items())
-----------------------------------------------------------------
dict_items([(1, 'a'), ('name', '익명'), ('age', ['30', '31'])])
5. clear() : Key와 Value 쌍 모두 지우기
a = {1: 'a', 'name': '익명', 'age': ['30', '31']}
a.clear()
print(a)
-------------------
{}
6. get(x) : x라는 Key에 대응되는 Value값을 반환.
- get(x, '디폴트 값') : '디폴트 값'을 통해 Key 값이 없을 때 반환 할 값을 미리 정해둘 수 있다.
- get()과 a[]의 차이는 존재하지 않는 key값을 가져오려고 할 때 None값을 반환하거나 오류를 발생시킨다는 점이 다르다.
a = {1: 'a', 'name': '익명', 'age': ['30', '31']}
print(a.get('name'))
print(a.get('address'))
print(a.get('address','없음')) # None 대신에 다른 값을 반환하고 싶을 때
print(a['name'])
print(a['address'])
--------------------------------------------------------
익명
None
없음
익명
Traceback (most recent call last):
File "c:\jocoding\format.py", line 8, in <module>
print(a['address'])
KeyError: 'address'
7. 해당 Key가 딕셔너리 안에 있는지 조사하기(in)
a = {1: 'a', 'name': '익명', 'age': ['30', '31']}
print('name' in a)
print('address' in a)