코딩 이야기/파이썬(Python)

단도직입 파이썬(Python) 기초 – 3 자료형(list, tuple)

아재코더 2021. 12. 15. 14:53
 

오늘은 Python의 자료형 중 리스트(list), 튜플(tuple) 대해 알아봅니다. 문자형이나 숫자형 자료형 보다 복잡해 보일 수 있지만 당연하게도 계속 마주하다 보면 익숙해질 일입니다.

리스트… 뭘까요? 가장 간단하게 설명드리자면 하나의 아파트에 호수(index)를 부여해서 여러 가구(value)가 들어갈 수 있는 형태를 말합니다. 호수만 부여하거나 동과 호수를 부여하거나 단지 번호, 동, 호수를 부여하거나(인덱스의 다중화)… 이해되시나요? 저도 첨엔 어렵더군요.-,.-;;

A = [ ‘abc’, 123, ’def’, 456 ] 란 명령어가 입력되면,

예를 들어 “A”란 아파트 1호에 ‘abc’, 2호에 123, 3호에 ‘def’, 4호에 456을 입력하겠다는 의미입니다. 제가 이해한 리스트, 튜플 개념인데 더 쉽게 표현할 방법 아시면 댓글로 남겨주세요~! 다만 리스트는 변수형이라 value 생성, 변경, 삭제 가능하고 튜플은 상수형이라 value를 변경할 수 없습니다.

리스트(list)의 형태는 다음과 같습니다.

>>> a = []
비어있는 리스트
>>> b = [ 1, 2, 3 ]
숫자형
>>> c = [ 'A', 'B', C' ]
문자형
>>> d = [ 123, 'abc' ]
숫자, 문자 복합형
>>> e = [ 1, 2, [ 'A', 'B' ] ]
리스트 안에 리스트

리스트의 인덱싱과 슬라이싱은 문자열 때와 동일하게 적용하면 됩니다.

기본적인 인덱싱
다중 인덱싱
슬라이싱
>>> a = [ 1, 2, 3 ]
>>> a
[1, 2, 3]
>>> a [0]
1
>>> a[0] + a[2]
4
>>> a[-1]
3
>>> a = [ 1, 2, 3, ['a', 'b', 'c' ]
>>> a [0]
1
>>> a[3]
['a', 'b', 'c']
>>> a[-1][0]
'a'
>>> a[3][1]
'b'
>>> a = [1, 2, 3, 4, 5, 6]
>>> b = [:3]
>>> c = [3:]
>>> b
[1, 2, 3]
>>> c
[4, 5, 6]



파이썬은 0부터 숫자를 세는 것과, [0:3]일 때 0 이상 3 미만을 나타내는 것임을 다시 한번 기억해 둡니다. 리스트의 연산도 문자열과 동일하게 “+” 더하거나, “*” 반복하는 문법이 동일합니다.

 
 
값 수정하기
del 함수 사용으로 요소 제거하기
>>> a = [ 1, 2, 3 ]
>>> a[2] = 4
>>> a
[1, 2, 4]
>>> a = [ 1, 2, 3 ]
>>> del a[1]
>>> a
[1, 3]

리스트 요소를 추가, 정렬, 뒤집거나 위치를 반환하는 함수들을 알아보겠습니다.

append(추가)
sort(정렬)
reverse(반전)
index(위치 반환)
>>> a = [ 1, 2, 3 ]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> a.append([5,6])
>>> a
[1, 2, 3, 4, [5, 6] ]

>>> a = [ 1, 4, 3, 2 ]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a = [ 'b', 'c', 'a' ]
>>> a. sort()
>>> a
[ 'a', 'b', 'c' ]
>>> a = [ 'a', 'c', 'b' ]
>>> a.reverse()
>>> a
[ 'b', 'c', 'a' ]







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





insert(삽입)
remove(제거)
pop(요소 추출 후 삭제)
count(특정한 요소의 개수)
>>> a = [ 1, 2, 3 ]
>>> a.insert(0,4)
>>> a
[4, 1, 2, 3]
>>> a.insert(3, 5)
>>> a
[4, 1, 2, 5, 3]



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









>>> a = [ 'a', 'b', 'c', 'd' ]
>>> a.pop()
'd'
>>> a
[ 'a', 'b', 'c' ]
>>> a.pop(1)
'b'
>>> a
['a', 'c']
>>> a = [ 1, 1, 1, 2, 2, 3 ]
>>> a.count(1)
3
>>> a.count(2)
2







직접 python prompt를 띄우고 리스트의 요소 값과 함수의 값을 바꿔가며 실행해 보시길 바랍니다. 그래야 실력이 쌓이긋죠?^^

튜플(tuple)의 형태는 다음과 같습니다.

>>> a = ()
비어있는 튜플
>>> b = ( 1, )
숫자형
>>> c = ( 'A', 'B', C' )
문자형
>>> d = 123, 'abc'
괄호 없이 튜플 생성
>>> e = ( 1, 2, ( 'A', 'B' ) )
튜플 안에 튜플

튜플은 리스트와 형태나 구조가 모두 비슷하지만, 1개의 요소를 가질 때 반드시 콤마(,)를 붙여야 한다는 것과 ()를 생략해도 된다는 점이 다릅니다. (리스트는 [ ] , 튜플은 ( ) )

튜플의 요솟값을 삭제하거나 변경하려 하면 아래와 같은 에러가 발생합니다.

python - tuple

튜플의 value 변경을 제외한 나머지 기능은 리스트와 동일합니다. 인덱싱, 슬라이싱, 더하거나, 곱하기 등! 그래서 패쓰~!


저도 배워가는 과정이지만 궁금하신 내용을 댓글로 남겨주시면 성심성의껏 답변드리도록 노력하겠습니다!