Programming 기초/Python

[Python 기초 #3] 튜플(tuple), 딕셔너리(dictionary)

코딩상륙작전 2023. 4. 14. 23:26

* 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)