PYTHON

파이썬의 자료형(3) - 리스트, 튜플, 딕셔너리

휘성티비 2024. 8. 21. 00:41

리스트

먼저 리스트에 대해 간단히 설명하면 여러 값이 모인 큰 자료형이다. 

리스트의 들어있는 것을 요소라고 하고 리스트의 생김새는 대괄호([ ])로 감싸고 요솟값은 콤마(,)로 구분다.

여러 리스트의 생김새는 다음과 같다.

>>> a = []
>>> b = [1, 2, 3]
>>> c = ['Life', 'is', 'too', 'short']
>>> d = [1, 2, 'Life', 'is']
>>> e = [1, 2, ['Life', 'is']]
비어있는 리스트는 a = list() 로 생성할 수 있다.

 

리스트는 어떤 자료형도 포함할 수 있다.

 

인덱싱과 슬라이싱

리스트도 문자열처럼 인덱싱, 슬라이싱이 가능하다.

>>> a = [1, 2, 3, ['a', 'b', 'c']]

위와 같은 형태의  리스트는 a[3]을 하게되면 a,b,c를 담고 있는 리스트 전체가 출력된다.

>>> print(a[3])
['a', 'b', 'c']

리스트 안에 있는 리스트를 인덱싱하려면 a[3][0]과 같은 형태를 사용한다.

 

리스트 연산

리스트는 +를 사용해 더하거나 *를 사용해 반복할 수 있다.

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]
>>> a = [1, 2, 3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]


len 함수로 길이도 구할 수 있다.

>>> a = [1, 2, 3]
>>> len(a)
3

 

리스트 수정 삭제

>>> a = [1, 2, 3]
>>> a[2] = 4
>>> a
[1, 2, 4]

인덱싱과 같은 형태로 수정이 가능하다.

 

>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]

del 함수를 사용하면 요소를 삭제할 수 있다. 슬라이싱 기법을 활용하면 여러 개를 삭제할 수 있다.

 

 

리스트 함수

요소 추가 - append

리스트의 뒷 부분에 요소를 추가한다.

>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

정렬 - sort

>>> a = [1, 4, 3, 2]
>>> a.sort()
>>> a
[1, 2, 3, 4]

뒤집기 - reverse

현재 리스트 그대로 거꾸로 순서를 뒤집는다.

>>> a = ['a', 'c', 'b']
>>> a.reverse()
>>> a
['b', 'c', 'a']

인덱스 반환 - index

>>> a = [1, 2, 3]
>>> a.index(3)
2
>>> a.index(1)
0

 

삽입 - insert

insert(a,b)는 리스트의 a번째 위치에 b를 삽입한다. 0부터 사용한다.

>>> a = [1, 2, 3]
>>> a.insert(0, 4)
>>> a
[4, 1, 2, 3]

제거 - remove

>>> a = [1, 2, 3, 1, 2, 3]
>>> a.remove(3)
>>> a
[1, 2, 1, 2, 3]

끄집어내기 - pop

값을 끄집어내고 그 값을 리스트에서 삭제한다.

>>> a = [1, 2, 3]
>>> a.pop()
3
>>> a
[1, 2]

요소 x의 개수 - count

>>> a = [1, 2, 3, 1]
>>> a.count(1)
2

확장 - extend

>>> a = [1, 2, 3]
>>> a.extend([4, 5])
>>> a
[1, 2, 3, 4, 5]
>>> b = [6, 7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]

 


튜플

튜플은 리스트와 비교하면 비슷한 부분이 있지만 소괄호로 쌓여있고, 값의 변경이 불가능하다.

t1 = ()
t2 = (1,)
t3 = (1, 2, 3)
t4 = 1, 2, 3
t5 = ('a', 'b', ('ab', 'cd'))

튜플을 만들 때 요소가 하나라면 (1,)와 같이 쉼표를 넣어야 한다.

 

이외에는 리스트와 동일하다.

 


딕셔너리

딕셔너리는 단어 그대로 '사전'이라는 뜻이다.

딕셔너리는 key와 value 형태로 이루어져 있다. 생김새는 중괄호로 둘러쌓여 있고, key: value로 이루어져 있다.

 

다음은 딕셔너리의 예이다.

>>> dic = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}

 

해당 dic의 key는 각각 'name', 'phone', 'birth', 각각의 key에 해당하는 value는 'pey', '010-9999-1234','1118'이다.

key value
name pey
phone 010-9999-1234
birth 1118

그림을 보면 알겠지만 key에 대응하는 값을 이용하는 자료형이다.

 

다음은 key로 정숫값 1, value로 문자열 'hi'를 사용한 예이다.

>>> a = {1: 'hi'}

또한 다음 예처럼 Value에 리스트도 넣을 수 있다.

>>> a = {'a': [1, 2, 3]}

 

딕셔너리 쌍 추가, 삭제

>>> a = {1: 'a'}
>>> a[2] = 'b'
>>> a
{1: 'a', 2: 'b'}

이런식으로 넣으면 a 딕셔너리에 2 라는 key에 'b'라는 value를 추가하여 들어간다.

value에는 어떤 자료던 들어간다.

>>> del a[1]
>>> a
{2: 'b', 'name': 'pey', 3: [1, 2, 3]}

 

del a[key]를 입력하면 지정한 key에 해당하는 {key : value} 쌍이 삭제된다.

 

딕셔너리 사용

딕셔너리에서 Key를 사용해 Value 얻을 수 있다.

>>> grade = {'pey': 10, 'julliet': 99}
>>> grade['pey']
10
>>> grade['julliet']
99

 

딕셔너리에서 key는 고유한 값이므로 중복되는 값을 설정하면 나머지 것들이 모두 무시된다.

key는 불변값(immutable)만 들어갈 수 있다.

 

딕셔너리 함수

Key 리스트 - keys

>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])

Value 리스트 - values

dict_values 객체를 리턴

>>> a.values()
dict_values(['pey', '010-9999-1234', '1118'])

Key, Value 쌍 얻기 - items

쌍을 튜플로 묶는 dict_items 객체를 리턴

>>> a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])

Key: Value 쌍 모두 지우기 - clear

>>> a.clear()
>>> a
{}

Key로 Value 얻기 - get

>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'010-9999-1234'

해당 Key가 딕셔너리 안에 있는지 조사하기 - in

>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False