티스토리 뷰
#5 파이썬 chapter 5. 리스트 자료형
지금까지 우리는 숫자와 문자열에 대해서 알아보았다. 하지만 숫자와 문자열만으로는 프로그래밍을 하기엔 부족한 점이 많다. 예를 들어 1부터 10까지 숫자에서 홀수 모음인 1,3,5,7,9 의 집합을 생각해 보자. 이런 숫자 모음을 숫자나 문자열로 표현하기는 쉽지 않다. 파이썬에는 이러한 불편함을 해소할 수 있는 자료형이 존재한다. 그것이 지금 공부할 리스트(List)이다.
1. 리스트는 어떻게 만들고 사용할까?
리스트를 사용하면 1,3,5,7,9 숫자 모음을 다음과 같이 간단하게 표현 할 수 있다.
odd = [1, 3, 5, 7, 9]
리스트를 만들 때는 위에서 처럼 대괄호 "[]" 로 감싸주고 각 요솟값은 쉼표(,) 로 구분해준다.
여러가지 리스트의 생김새를 보면 다음과 같다.
a = []
b = [1, 2, 3]
c = ['Life', 'is', 'too', 'short']
d = [1, 2, 'Life', 'is']
e = [1, 2, ['Life', 'is]]
리스트는 a 처럼 아무것도 포함하지 않아 비어있는 리스트일 수도 있고, b 처럼 숫자를 요솟값으로, c 처럼 문자열을 요솟값으로 가질 수 있다. 또한 d 처럼 숫자와 문자열을 함께 가질수도 있으며, e 처럼 리스트 자체를 요솟값으로 가질 수도 있다. 즉 리스트 안에는 어떠한 자료형도 포함시킬 수 있다.
2. 리스트의 인덱싱과 슬라이싱
리스트도 문자열처럼 인덱싱과 슬라이싱이 가능하다.
* 리스트의 인덱싱
a = [1, 2, 3]
a
[1, 2, 3]
a[0]
1
a[0] 은 a 의 첫번째 요솟값을 말한다.
a[0] + a[2]
4
이것은 1 + 3 으로 해석이 되어 값 4를 출력한다.
문자열을 공부할 때 와 같이 파이썬은 숫자를 0부터 센다 따라서 a[1] 이 리스트 a 의 첫번째 요소가 아니라 a[0] 이 첫번쨰 요소임을 명심하다. a[-1]은 문자열에서 마찬가지로 리스트 a의 마지막 요소값을 말한다.
a[-1]
3
이번에는 숫자와 또 다른 리스트를 포함한 리스트를 만들어보자
a = [1, 2, 3, ['a', 'b', 'c']]
a[0]
1
a[-1]
['a', 'b', 'c']
예상대로 a[-1] 은 마지막 요솟값 ['a', 'b', 'c'] 를 나타낸다.
a[-1][0]
'a'
위와같이 하면 'a'를 끄집어낼 수 있다. a[-1] 이 ['a', 'b', 'c'] 리스트이고 바로 이 리스트의 첫번째 요소값을 불러오기 위해 [0] 을 붙여 준 것이다.
* 리스트의 슬라이싱
문자열과 마찬가지로 리스트에서도 슬라이싱 기법을 적용할 수 있다.
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]
다음과 같이 중첩된 리스트도 슬라이싱을 해보자.
a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
a[2:5]
[3, ['a', 'b', 'c'], 4]
a[3][:2]
['a', 'b']
위와 같이 a[3][:2]는 ['a', 'b', 'c']의 첫번째 요소부터 3번째 요소 직전까지의 값 ['a', 'b']를 나타내는 리스트가 된다.
* 리스트 연산하기
1) 리스트 더하기(+)
a = [1, 2, 3]
b = [4, 5, 6]
a + b
[1, 2, 3, 4, 5, 6)
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
[1, 2, 4]
a[2] 의 요솟값이 4 로 바뀌었다
2) del 함수를 사용해 리스트 요소 삭제하기
a = [1, 2, 3]
del a[1]
[1, 3]
del a[x]는 x번째 요솟값을 삭제한다. (del 객체)
다음처럼 슬라이싱 기법을 사용하여 리스트의 요소 여러 개를 한꺼번에 삭제할 수도 있다.
a = [1, 2, 3, 4, 5]
del a[2:]
[1,2]
*리스트 관련 함수
문자열과 마찬가지로 리스트 변수 이름뒤에 ' . ' 을 붙여서 여러 가지 리스트 관련 함수를 사용할 수 있다.
유용하게 사용되는 리스트 관련 함수 몇 가지를 알아보자.
1) 리스트에 요소추가(append)
append(x)는 리스트의 맨 마지막에 x를 추가하는 함수이다.
a = [1, 2, 3]
a.append[4]
a
[1, 2, 3, 4]
또한 리스트안에 어떠한 자료형도 추가할 수 있다.
a.append([5, 6])
a
[1, 2, 3, 4, [5, 6]]
2) 리스트 정렬(sort)
sort 함수는 리스트의 요소를 순서대로 정리해 준다.
a = [1, 4, 3, 2]
a.sort()
a
[1, 2, 3, 4]
a = ['a', 'c', 'b']
a.sort
[a, b, c]
문자 역시 알파벳 순서로 정렬할 수 있다.
3) 리스트 뒤집기(revers)
reverse 함수는 리스트를 역순으로 뒤집어 준다. 이때 리스트 요소들을 순서대로 정렬한 다음 다시 역순으로 정렬하는 것이 아니라 그저 현재의 리스트를 그대로 거꾸로 뒤집어준다.
a = ['a', 'c', 'b']
a.revers()
[b, c, a]
4) 위치 반환(index)
index(x) 함수는 리스트에 x 값이 있으면 x의 위치 값을 돌려준다.
a = [1, 2, 3]
a.index(3)
2
a.index(1)
0
5) 리스트에 요소 삽입(insert)
insert(a,b) 는 리스트의 a번째 위치에 b를 삽입하는 함수이다.
a = [1, 2, 3]
a.insert(0, 4)
[4, 1, 2, 3]
a.insert(3,5)
[4, 1, 2, 5, 3]
위 예제처럼 0번째 자리에 4를 삽입하라는 뜻이고 두번째 예는 3번째 자리에 5를 삽입하라는 뜻이다.
6) 리스트 요소 제거(remove)
remove(x) 는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다.
a = [1, 2, 3, 1, 2, 3]
a.remove(3)
[1, 2, 1, 2, 3]
a.remove(3)
[1, 2, 1, 2]
a가 3의 값을 2개 가지고 있을 때 첫 번째 3만 제거되는 것을 알 수 있고 한 번 더 실행하면 다시 3이 삭제된다.
7) 리스트 요소 끄집어 내기(pop)
pop() 은 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제한다.
a = [1, 2, 3]
a.pop()
3
a
[1, 2]
위 처럼 리스트 마지막 요소 3을 끄집어내고 최종적으로 [1, 2] 만 남게된다.
a = [1, 2, 3]
a.pop(1)
2
a
[1, 3]
a.pop(1)은 a[1]의 값을 끄집어 낸다. 다시 a를 출력해 보면 끄집어낸 값이 삭제된 것을 확인 할 수 있다.
8) 리스트에 포함된 요소 x의 개수 세기(count)
count(x) 는 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수이다.
a = [1, 2, 3, 1]
a.count(1)
2
1이라는 값이 리스트 a에 2개 들어 있으므로 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]
출처: 점프 투 파이썬
'파이썬의 기초' 카테고리의 다른 글
파이썬의 기초 (딕셔너리 자료형) (0) | 2021.03.07 |
---|---|
파이썬의 기초 ( 튜플 자료형) (0) | 2021.03.07 |
파이썬의 기초(문자열 관련 함수) (0) | 2021.03.05 |
파이썬의 기초(문자열 포매팅) (0) | 2021.03.04 |
파이썬의 기초 (문자열 인덱싱과 슬라이싱) (0) | 2021.03.03 |