Python

[Python]자료형: 리스트 자료형, 튜플 자료형

열지희공 2022. 1. 15. 01:48

<리스트(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

 

<출처>

https://wikidocs.net/14

 

02-3 리스트 자료형

지금까지 우리는 숫자와 문자열에 대해서 알아보았다. 하지만 숫자와 문자열만으로 프로그래밍을 하기엔 부족한 점이 많다. 예를 들어 1부터 10까지의 숫자 중 홀수 모음인 1, ...

wikidocs.net

https://wikidocs.net/15

 

02-4 튜플 자료형

[TOC] ## 튜플은 어떻게 만들까? 튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다. * 리스트는 [ ]으로 둘러 ...

wikidocs.net