본문 바로가기

Algorithm/Python

[Python] 리스트 자료형

리스트의 인덱싱

>>> a = [1, 2, 3]
>>> a
[1, 2, 3]

여기서 주의해야할 것은 a[-1]은 문자열에서와 마찬가지로 리스트 a의 마지막 요솟값을 말한다.

>>> a[-1]
3

이번에는 다음 예처럼 리스트 a를 숫자 1, 2, 3과 또 다른 리스트인 ['a', 'b', 'c']를 포함하도록 만들어 보자.

>>> a = [1, 2, 3, ['a', 'b', 'c']]
>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']

여기에서 리스트 a에 포함된 ['a', 'b', 'c'] 리스트에서 'a' 값을 인덱싱을 사용해 끄집어낼 수 있는 방법은 없을까? 다음 예를 보자.

>>> a[-1][0]
'a'
>>> a[-1][1]
'b'
>>> a[-1][2]
'c'

 

리스트의 슬라이싱

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

 

리스트의 수정과 삭제

다음과 같이 수정한다.

>>> a = [1, 2, 3]
>>> a[2] = 4
>>> a
[1, 2, 4]

 

삭제는 다음과 같이 del 함수를 사용한다.

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

 

리스트 관련 함수들

>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> a.append([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']
>>> a = ['a', 'c', 'b']
>>> a.reverse()
>>> a
['b', 'c', 'a']
>>> a = [1,2,3]
>>> a.index(3)
2
>>> a.index(1)
0

 

insert(a, b)는 리스트의 a번째 위치에 b를 삽입하는 함수이다. 파이썬은 숫자를 0부터 센다는 것을 반드시 기억하자.

>>> a = [1, 2, 3]
>>> a.insert(0, 4)
>>> a
[4, 1, 2, 3]
>>> a.insert(3, 5)
>>> a
[4, 1, 2, 5, 3]

 

remove(x)는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다.

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

 

pop()은 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제한다.

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

 

count(x)는 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 리턴하는 함수이다.

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

 

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]