[Python]자료형: 리스트 자료형, 튜플 자료형
<리스트(list)>
리스트명 = [요소1, 요소2, 요소3, ...]
리스트를 만들 땐 대괄호([])로 감싸주고 각 요솟값은 쉼표(,)로 구분해준다.
>>> a = []
>>> b = [1, 2, 3]
>>> c = ['Life', 'is', 'too', 'short']
>>> d = [1, 2, 'Life', 'is']
>>> e = [1, 2, ['Life', 'is']]
리스트는 a처럼 비어있는 리스트일 수도 있다. 또 리스트의 요솟값에는 숫자, 문자열, 숫자와 문자열, 리스트 자체 등 어떠한 자료형도 가능하다.
리스트의 인덱싱과 슬라이싱
1. 리스트의 인덱싱
>>> a = [1, 2, 3]
>>> a
[1, 2, 3]
>>> a[0]
1
>>> a[-1]
3
리스트도 문자열처럼 인덱싱을 적용할 수 있다. 파이썬은 숫자를 0부터 세기 때문에 a[0]이 리스트 a의 첫번째 요소이다. a[-1]은 리스트 a의 마지막 요솟값을 말한다.
>>> a = [1, 2, 3, ['a', 'b', 'c']]
>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']
>>> a[-1][0]
'a'
리스트 a에 포함된 ['a', 'b', 'c']리스트에서 'a'값을 끄집어내기 위해서는 먼저 a[-1]로 ['a', 'b', 'c']리스트를 인덱싱한 후 [0]을 붙여 첫번째 요소를 불러온다. 즉 a[-1][0]은 리스트 a의 마지막 요소인 ['a', 'b', 'c']리스트 중 첫번째 요소 'a'를 가르키게 된다.
2. 리스트의 슬라이싱
>>> a = [1, 2, 3, 4, 5]
>>> a[0:2]
[1, 2]
>>> a = [1, 2, 3, 4, 5]
>>> b = a[:2]
>>> c = a[2:]
>>> b
[1, 2]
>>> c
[3, 4, 5]
이때 b는 리스트 a의 첫번째 요소부터 두번째 요소인 a[1]까지를 나타내는 리스트이다. c는 리스트 a의 세번째 요소부터 끝까지 나타내는 리스트이다.
리스트 연산하기
1. 리스트 더하기(+)
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]
리스트 사이에서 +기호는 2개의 리스트를 합치는 기능이다.
2. 리스트 반복하기(*)
>>> a = [1, 2, 3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
[1, 2, 3]리스트가 세 번 반복되어 새로운 리스트를 만들어낸다.
3. 리스트 길이 구하기
>>> a = [1, 2, 3]
>>> len(a)
3
리스트 길이를 구하기 위해서는 len함수를 사용하면 된다.
리스트의 수정과 삭제
1. 리스트에서 값 수정하기
>>> a = [1, 2, 3]
>>> a[2] = 4
>>> a
[1, 2, 4]
2. del 함수 사용해 리스트 요소 삭제하기
>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]
del a[x]는 x번째 요소값을 삭제한다.
>>> a = [1, 2, 3, 4, 5]
>>> del a[2:]
>>> a
[1, 2]
슬라이싱 기법을 사용해서 리스트의 요소 여러개를 한꺼번에 삭제할 수도 있다.
리스트 관련 함수
1. 리스트에 요소 추가(append)
.append(x)는 리스트의 맨 마지막에 x를 추가하는 함수이다. 리스트 안에는 어떤 자료형도 추가할 수 있다.
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
2. 리스트 정렬(sort)
sort함수는 리스트의 요소를 순서대로 정렬해준다.
>>> a = [1, 4, 3, 2]
>>> a.sort()
>>> a
[1, 2, 3, 4]
문자도 알파벳 순서로 정렬할 수 있다.
>>> a = ['a', 'c', 'b']
>>> a.sort()
>>> a
['a', 'b', 'c']
3. 리스트 뒤집기(reverse)
reverse함수는 리스트를 역순으로 뒤집어 준다. 리스트를 정렬 후 역순으로 정렬하는 것이 아니라 현재의 리스트를 그대로 거꾸로 뒤집는 것이다.
>>> a = ['a', 'c', 'b']
>>> a.reverse()
>>> a
['b', 'c', 'a']
4. 위치반환(index)
index(x)함수는 리스트에 x값이 있으면 x의 위치 값을 돌려준다.
>>> a = [1,2,3]
>>> a.index(3)
2
>>> a.index(1)
0
만약 리스트에 존재하지 않는 값을 index함수 인자로 넘겨주면 값 오류(ValueError)가 발생한다.
5. 리스트에 요소 삽입(insert)
insert(a, b)는 리스트의 a번째 위치에 b를 삽입하는 함수이다.
>>> a = [1, 2, 3]
>>> a.insert(0, 4)
>>> a
[4, 1, 2, 3]
6. 리스트 요소 제거(remove)
remove(x)는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다.
>>> a = [1, 2, 3, 1, 2, 3]
>>> a.remove(3)
>>> a
[1, 2, 1, 2, 3]
7. 리스트 요소 끄집어내기(pop)
pop()은 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제한다.
>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]
pop(x)는 리스트의 x번째 요소를 돌려주고 그 요소는 삭제한다.
>>> a = [1,2,3]
>>> a.pop(1)
2
>>> a
[1, 3]
8. 리스트에 포함된 요소 x의 개수 세기(count)
count(x)는 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수이다.
>>> a = [1,2,3,1]
>>> a.count(1)
2
9. 리스트 확장(extend)
extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a리스트에서 x리스트를 더하게 된다.
>>> 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]
a.extend([4, 5])는 a += [4, 5]와 동일하다.
<튜플(tuple)>
튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.
-리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
-리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
>>> t1 = ()
>>> t2 = (1,)
>>> t3 = (1, 2, 3)
>>> t4 = 1, 2, 3
>>> t5 = ('a', 'b', ('ab', 'cd'))
t2 = (1,)처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를 반드시 붙여야 한다. 또 t4 = 1, 2, 3처럼 괄호()를 생략해도 무방하다.
튜플과 리스트의 가장 큰 차이는 값을 변화시킬 수 있는가의 여부이다.
리스트의 항목 값은 변화가 가능하고 튜플의 항목 값은 변화가 불가능하다.
프로그램이 실행되는 동안 그 값이 항상 변하지 않기를 바람 -> 튜플 사용
그 이외 -> 리스트 사용
튜플 다루기
1. 인덱싱하기
>>> t1 = (1, 2, 'a', 'b')
>>> t1[0]
1
>>> t1[3]
'b'
파이썬은 숫자를 0부터 세기 때문에 t1[0]은 튜플의 첫번째 요소를 가르키고 t1[3]은 튜플의 네번째 요소를 가르킨다.
2. 슬라이싱하기
>>> t1 = (1, 2, 'a', 'b')
>>> t1[1:]
(2, 'a', 'b')
t1[1]부터 튜플의 마지막 요소까지 슬라이싱하는 예이다.
3. 튜플 더하기
>>> t1 = (1, 2, 'a', 'b')
>>> t2 = (3, 4)
>>> t1 + t2
(1, 2, 'a', 'b', 3, 4)
4. 튜플 곱하기
>>> t2 = (3, 4)
>>> t2 * 3
(3, 4, 3, 4, 3, 4)
튜플의 곱하기(반복)예를 보여준다.
5. 튜플 길이 구하기
>>> t1 = (1, 2, 'a', 'b')
>>> len(t1)
4
<출처>
02-3 리스트 자료형
지금까지 우리는 숫자와 문자열에 대해서 알아보았다. 하지만 숫자와 문자열만으로 프로그래밍을 하기엔 부족한 점이 많다. 예를 들어 1부터 10까지의 숫자 중 홀수 모음인 1, ...
wikidocs.net
02-4 튜플 자료형
[TOC] ## 튜플은 어떻게 만들까? 튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다. * 리스트는 [ ]으로 둘러 ...
wikidocs.net