상세 컨텐츠

본문 제목

[ Python 기초 문법 ] - 자료형(3) - 리스트 자료형

Language/Python

by bing_su 2021. 2. 27. 17:55

본문

반응형
SMALL

이번에 다룰 자료형은 리스트(List)이다.

[ 리스트를 만들고 사용하는 방법 ]

리스트를 만들 때는 대괄호([ ])로 감싸고 각 요소는 쉼표(,)로 구분한다.

리스트명 = [ 요소1, 요소2, 요소3, … ]

여러 리스트의 생김새를 살펴보면 아래와 같다.

a = []  # 비어있는 리스트로 a = list()로도 생성 가능
b = [1, 2, 3]  # 숫자만 요소로 가지는 리스트
c = ['Life', 'is', 'too', 'short']  # 문자열만 요소로 가지는 리스트
d = [1, 2, 'Life', 'is']  # 숫자와 문자열을 함께 요소로 가지는 리스트
e = [1, 2, ['Life', 'is']]  # 리스트 역시 요솟값으로 가질 수 있다.

리스트 안에는 어떠한 자료형도 포함시킬 수 있다.

[ 리스트의 인덱싱과 슬라이싱 ]

리스트도 문자열처럼 인덱싱과 슬라이싱이 가능하다.

< 리스트의 인덱싱 >

>>> a = [1, 2, 3]
>>> a
[1, 2, 3]
>>> a[0]
1  # a의 첫 번째 요소 출력
>>> a[0] + a[2]  # 1 + 3
4
>>> a[-1]  # 리스트 a의 마지막 요솟값
3

문자열과 동일하게 뒤에서부터 요소를 읽을 경우 마이너스(-) 기호를 붙인다. 

>>> 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 = [1, 2, 3, 4, 5]
>>> a[0:2]
[1, 2]

>>> a = "12345"
>>> a[0:2]
'12'

>>> a = [1, 2, 3, 4, 5]
>>> b = a[:2]  # 처음부터 a[1]까지
>>> c = a[2:]  # a[2]부터 마지막까지
>>> b
[1, 2]
>>> c
[3, 4, 5]

[ 리스트의 연산 ]

리스트 역시 '+', '*' 기호를 사용해 문자열을 합치거나 반복할 수 있다.

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]  # 새로운 리스트 생성

3. 리스트 길이 구하기

: len 함수를 사용하면 된다. len 함수는 문자열, 리스트 외에도 튜플과 딕셔너리에서 사용할 수 있다.

>>> a = [1, 2, 3]
>>> len(a)
3

▶ 리스트 연산 오류 주의

>>> a = [1, 2, 3]
>>> a[2] + "hi"

위의 코드를 실행하면 문자열 '3hi'가 출력될 것이라고 생각할 수 있다.

하지만 위와 같은 형 오류(TypeError)가 발생한다. 정수와 문자열은 서로 더할 수 없기 때문이다.

따라서 숫자와 문자열을 더해서 '3hi'를 만들고 싶으면 숫자 3을 문자 '3'으로 바꿔야 한다.

>>> str(a[2]) + "hi"

str 함수는 정수나 실수를 문자열의 형태로 바꾸는 파이썬의 내장 함수다.

[ 리스트의 수정과 삭제 ]

리스트는 값을 수정하거나 삭제할 수 있다.

< 리스트에서 값 수정 >

>>> a = [1, 2, 3]
>>> a[2] = 4  # a[2]의 요솟값 변경
>>> a
[1, 2, 4]

< del 함수 사용해 리스트 요소 삭제 >

>>> a = [1, 2, 3]
>>> del a[1]  // 1 번째 요솟값 삭제
>>> a
[1, 3]

del 함수는 파이썬이 자체적으로 가지고 있는 삭제 함수다. 아래와 같이 사용한다.

del 객체  # 객체란 파이썬에서 사용되는 모든 자료형을 말한다.

슬라이싱 기법으로 아래와 같이 리스트의 요소 여러 개를 한 번에 삭제할 수 있다.

>>> a = [1, 2, 3, 4, 5]
>>> del a[2:]
>>> a
[1, 2]

[ 리스트 관련 함수 ]

리스트 변수 이름 뒤에 '.'를 붙여 여러 가지 리스트 관련 함수를 사용할 수 있다.

< 리스트에 요소 추가 (append) >

append(x)는 리스트의 맨 마지막에 x를 추가하는 함수이다.

>>> a = [1, 2, 3]
>>> a.append(4)  # 리스트의 맨 마지막에 4를 추가
>>> a
[1, 2, 3, 4]
>>> a.append([5, 6])  # 리스트의 맨 마지막에 [5, 6] 추가
>>>a
[1, 2, 3, 4, [5, 6]]  # 리스트에 리스트를 추가할 수 있다.

< 리스트 정렬 (sort) >

리스트의 요소를 오름차순대로 정렬한다.

>>> a = [1, 4, 3, 2]
>>> a.sort()
>>> a
[1, 2, 3, 4]

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

 

리스트 요소를 내림차순으로 정렬하고 싶다면 reverse=True 옵션을 사용하면 된다.

>>> >>> a = ['a', 'c', 'b']
>>> a.sort(reverse=True)
>>> a
['c', 'b', 'a']

< 리스트 뒤집기 (reverse) >

리스트의 요소들을 그대로 역순으로 뒤집어 준다.

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

< 위치 반환 (index) >

index(x) 함수는 리스트에 x 값이 있으면 x의 위치 값을 돌려준다.

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

리스트에 없는 값을 인자 x에 넣을 경우, 아래와 같이 값 오류(ValueError)가 발생한다.

< 리스트에 요소 삽입 (insert) >

insert(a, b)는 리스트의 a 번째 위치에 b를 삽입하는 함수다. (index는 0부터 센다는 것을 명심하자.)

>>> a = [1, 2, 3]
>>> a.insert(0, 4)  # 첫 번째 요소(a[0]) 위치에 값 4 삽입
[4, 1, 2, 3]
>>> a.insert(3, 5)  # 네 번째 요소(a[3]) 위치에 값 5 삽입
[4, 1, 2, 5, 3]

< 리스트 요소 제거 (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]

< 리스트 요소 추출 (pop) >

pop()은 리스트의 맨 마지막 요소를 돌려주고 해당 요소는 삭제한다.

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

pop(x)리스트의 x번째 요소를 돌려주고 해당 요소는 삭제한다.

>>> a = [1, 2, 3]
>>> a.pop(1)  # a[1]의 값을 끄집어내고 삭제
2
>>> a
[1, 3]

 

< 리스트에 포함된 요소 x의 개수 세기 (count) >

count(x)는 리스트 안에 x가 몇 개 있는지 조사해 그 개수를 돌려주는 함수다.

>>> a = [1, 2, 3, 1]
>>> a.count(1)
2  # 1은 두 개 들어있으므로 2를 반환

< 리스트 확장 (extend) >

extend(x)에서 x에는 리스트만 올 수 있고, 원래 리스트에 x 리스트를 더한다.

>>> a = [1, 2, 3]
>>> a.extend([4, 5])  # a += [4, 5]와 동일
>>> a
[1, 2, 3, 4, 5]
>>> b = [6, 7]
>>> a.extend(b)  # a += b와 동일
>>> a
[1, 2, 3, 4, 5, 6, 7]

 

반응형
LIST

관련글 더보기

댓글 영역