오늘은 튜플 자료형에 대해 알아보겠습니당.
튜플은 리스트와 거의 비슷하며 리스트와 다른 점은
1. 리스트는 [], 튜플은 ()으로 둘러쌉니당.
2. 리스트는 요솟값의 생성, 삭제, 수정이 가능하지만, 튜플은 요솟값을 바꿀 수 없어요!!!
그럼 튜플을 어떻게 만들까요?!
t1 = ()
t2 = (1, ) 단지 1개의 요소만을 가질 때는 요소 뒤에 쉼표를 반드시 붙여야 한다는 점이 차이점!
t3 = (1, 2, 3)
t4 = 1, 2, 3 소괄호를 생략해도 된다는 점이 차이점!
t5 = ('a', 'b', ('ab', 'cd'))
얼핏 보면 튜플과 리스트는 비슷한 역할을 하지만, 프로그래밍을 할 때 튜플과 리스트는 구별해서 사용하는 것이 유리해용.
튜플과 리스트의 가장 큰 차이는 요솟값을 변화시킬 수 있는지의 여부예요.
리스트는 가능하고, 튜플은 불가합니닷
실제 프로그램에서는 값이 변경되는 형태의 변수가 훨씬 많아 리스트를 더 많이 사용합니다.ㅎㅎ
튜플의 요솟값을 지우거나 변경하려고 하면 생기는 일!!!!
1. 튜플 요솟값을 삭제하려 할 때
>>> t1 = (1, 2, 'a', 'b')
>>> del t1 [0]
이렇게 작성해 주면 에러가 떠용
2. 튜플 요솟값을 변경하려 할 때
>>> t1 = (1, 2, 'a', 'b')
>>> t1 [0] = 'c'
변경하려고 해도 에러가 발생하는 것을 볼 수 있어용
튜플을 다루는 방법에 대해 알아보겠습니당.
튜플은 요솟값을 변화시킬 수 없다는 점만 제외하면 리스트와 완전히 동일하므로 간단히만 살펴보면 됩니따당
1. 인덱싱 하기
>>> t1 = (1, 2, 'a', 'b')
>>> t1 [0]
1
>>> t1 [3]
'b'
2. 슬라이싱 하기
>>> t1 = (1, 2, 'a', 'b')
>>> t1 [1:]
(2, 'a', 'b')
3. 튜플 더하기
>>> t1 = (1, 2, 'a', 'b')
>>> t2 = (3, 4)
>>> t3 = t1 + t2
>>> t3
(1, 2, 'a', 'b', 3, 4)
4. 튜플 곱하기
>>> t2 = (3, 4)
>>> t3 = t2 * 3
>>> t3
(3, 4, 3, 4, 3, 4)
5. 튜플 길이 구하기
>>> t1 = (1, 2, 'a', 'b')
>>> len(t1)
4
- 딕셔너리 자료형 -
딕셔너리란?
: 딕셔너리는 key와 value를 한 쌍으로 가지는 자료형입니당.
딕셔너리는 리스트나 튜플처럼 순차적으로 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.
딕셔너리는 어떻게 만들까용?
딕셔너리의 기본 모습을 보여드리겠습니닷.
{Key1: Value1, Key2: Value2, Key3: Value3,...}
Key와 Value의 쌍 여러 개가 {}로 둘러싸여 있습니당. 각각의 요소들은 Key: Value 형태로 이루어져 있으며 쉼표로 구분되어 있어용
>>> dic = {'name': 'pay', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a = {1: 'hi'}
Key로 정수값 1, Value로 문자열 'hi'를 사용한 예입니닷
>>> a = {'a' : [1, 2, 3]}
딕셔너리 쌍 추가, 삭제하기
1. 딕셔너리 쌍 추가하기
>>> a = {1: 'a'}
>>> a [2] = 'b'
>>> a
{1: 'a', 2: 'b'}
{1:'a'} 딕셔너리에 a[2] = 'b'와 같이 입력하면 딕셔너리 a에 Key와 Value가 각각 2와 'b'인 {2: 'b'} 딕셔너리 쌍이 추가됩니당.
>>> a ['name'] = 'pey'
>>> a
{1: 'a', 2: 'b', 'name': 'pey'}
똑같은 원리입니당.
>>> a [3] = [1, 2, 3]
>>> a
{1: 'a', 2: 'b', 'name': 'pey', 3: [1, 2, 3]}
2. 딕셔너리 요소 삭제하기
>>> del a [1]
>>> a
{2: 'b', 'name': 'pey', 3: [1, 2, 3]}
이 코드는 Key가 1인 Key:Value 쌍을 삭제합니당.
딕셔너리를 사용하는 방법!
1. 딕셔너리에서 Key를 사용해 Value 얻기
>>> grade = {'pey': 10, 'julliet' : 99}
>>> grade ['pey']
10
>>> grade ['julliet']
99
이는 Key가 'pey'인 딕셔너리의 Value를 반환해 주고
Key가 'jullie'인 딕셔너리의 Value를 반환해 주는 코드입니닷.
리스트나 튜플, 문자열은 요솟값을 얻고자 할 때 인덱싱이나 슬라이싱 기법 중 하나를 사용했지만 딕셔너리는 단 한 가지 방법뿐입니다.
그것은 위의 방법입니닷. 어떤 Key의 Value를 얻기 위해서는 '딕셔너리_변수_이름[Key]'를 사용해야 합니닷.
2. 딕셔너리 만들 때 주의할 사항
딕셔너리에서 Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시돼요!
다음 예에서 볼 수 있듯이 동일한 Key가 2개 존재할 경우 1: 'a' 쌍이 무시됩니닷
>>> a = {1: 'a', 1: 'b'}
>>> a
또 주의해야 할 점은 Key에 리스트는 쓸 수 없다는 것입니다. 하지만 튜플은 Key로 쓸 수 있어용.
딕셔너리의 Key로 쓸 수 있느냐 없느냐는 Key가 변하는 값인지 변하지 않는 값인지에 달려 있어용.
리스트는 그 값이 변할 수 있기 때문에 Key로 사용하지 못해요!
>>> a = {[1,2] : 'hi]}
이렇게 쓰면 오류가 발생한답니닷.
단, Value에는 변하는 값이든, 변하지 않는 값이든 아무 값이나 넣을 수 있어요!!!
딕셔너리 관련 함수
1. Key 리스트 만들기 - keys
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])
a.keys()는 딕셔너리의 a의 Key만을 모아 dict_keys 객체를 리턴합니당.
dict_keys 객체를 리스트로 변환하려면 다음과 같이 하면 됩니닷.
>>> list(a.keys())
['name', 'phone', 'birth']
2. Value 리스트 만들기 - values
>>> a.values()
dict_values(['pey', '010-9999-1234', '1118'])
3. Key, Value 쌍 얻기 - items
>>> a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])
items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 리턴합니다.
4. Key: Value 쌍 모두 지우기 - clear
>>> a.clear()
>>> a
{}
clear 함수는 딕셔너리 안의 모든 요소를 삭제합니당.
5.Key로 Value 얻기 - get
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'010-9999-1234'
get(x) 함수는 x라는 Key에 대응되는 Value를 리턴합니닷.
앞에서 배웠듯이(딕셔너리에서 Key를 사용해 Value 얻기) get('name')은 a ['name']을 사용했을 때와 동일한 결괏값을 리턴합니다.
다만 다른 점이 있습니다. 먼저 코드를 보시져~!
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> print(a.get('nokey'))
None
>>> print(a ['nokey'])
에러 발생
존재하지 않는 키로 값을 가져오려고 할 경우, 처음 방법으로 했을 때는 none이라는 것을 출력시키지만 두 번째 방법으로 하면 에러를 발생시킵니당.
어떤 상황에서 어떠한 코드를 쓸 것인가는 스스로가 정하는 거죠!!!!!
딕셔너리 안에 찾으려는 Key가 없을 경우, 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때는 get(x, '디폴트 값')을 사용하면 편리합니닷.
>>> a.get('nokey', 'foo')
'foo'
6. 해당 Key가 딕셔너리 안에 있는지 조사하기 - in
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
'name' 문자열은 a 딕셔너리의 Key 중 하나이므로 참을 리턴합니당.
하지만 'email'은 없는 Key 이므로 거짓을 리턴합니닷.
어때요?! 오늘 내용은 할 만했나요?!!!!!!!!!!!!
그럼 다음번엔 집합 자료형부터 알려주는 파이썬 블로그를 가져오겠씁니닷.....................
'레쭈고 파이썬' 카테고리의 다른 글
파이썬 2장 - 6 (0) | 2024.02.29 |
---|---|
파이썬 2장 - 5 (1) | 2024.02.28 |
파이썬 2장 - 3 (1) | 2024.02.24 |
파이썬 2장 - 2 (1) | 2024.02.22 |
파이썬 2장 - 1 (0) | 2024.02.21 |