단도직입 파이썬(Python) 기초 – 3 자료형(list, tuple)
오늘은 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개의 요소를 가질 때 반드시 콤마(,)를 붙여야 한다는 것과 ()를 생략해도 된다는 점이 다릅니다. (리스트는 [ ] , 튜플은 ( ) )
튜플의 요솟값을 삭제하거나 변경하려 하면 아래와 같은 에러가 발생합니다.

튜플의 value 변경을 제외한 나머지 기능은 리스트와 동일합니다. 인덱싱, 슬라이싱, 더하거나, 곱하기 등! 그래서 패쓰~!
저도 배워가는 과정이지만 궁금하신 내용을 댓글로 남겨주시면 성심성의껏 답변드리도록 노력하겠습니다!