이번에 다룰 자료형은 리스트(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]
리스트 역시 '+', '*' 기호를 사용해 문자열을 합치거나 반복할 수 있다.
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b # 두 리스트를 합치는 기능
[1, 2, 3, 4, 5, 6]
>>> a = [1, 2, 3]
>>> a * 3 # 리스트가 세 번 반복됨.
[1, 2, 3, 1, 2, 3, 1, 2, 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]
>>> 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(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]] # 리스트에 리스트를 추가할 수 있다.
리스트의 요소를 오름차순대로 정렬한다.
>>> 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']
리스트의 요소들을 그대로 역순으로 뒤집어 준다.
>>> a = ['a', 'c', 'b']
>>> a.reverse()
>>> a
['b', 'c', 'a']
index(x) 함수는 리스트에 x 값이 있으면 x의 위치 값을 돌려준다.
>>> a = [1, 2, 3]
>>> a.index(3)
2
>>> a.index(1)
0
리스트에 없는 값을 인자 x에 넣을 경우, 아래와 같이 값 오류(ValueError)가 발생한다.
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(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()은 리스트의 맨 마지막 요소를 돌려주고 해당 요소는 삭제한다.
>>> 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]
count(x)는 리스트 안에 x가 몇 개 있는지 조사해 그 개수를 돌려주는 함수다.
>>> a = [1, 2, 3, 1]
>>> a.count(1)
2 # 1은 두 개 들어있으므로 2를 반환
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]
[ Python 기초 문법 ] - 자료형(6) - 집합 자료형 (0) | 2021.02.27 |
---|---|
[ Python 기초 문법 ] - 자료형(5) - 딕셔너리 자료형 (0) | 2021.02.27 |
[ Python 기초 문법 ] - 자료형(4) - 튜플 자료형 (0) | 2021.02.27 |
[ Python 기초 문법 ] - 자료형(2) - 문자열 자료형 (0) | 2021.01.11 |
[ Python 기초 문법 ] - 자료형(1) - 숫자형 (0) | 2021.01.11 |
댓글 영역