List 자료형이란?
Python에서 리스트(List) 여러 개의 요소(element)를 담을 수 있는 순서가 있는(ordered) 자료형이다.
리스트는 대괄호([])를 사용하여 생성하며, 각 요소는 쉼표로 구분한다.
리스트명 = [요소1, 요소2, 요소3]
List의 여러가지 생김새
a = []
# 빈 list는 a = list()로 선언할 수 있다.
b = [1,2,3]
c = ['life', 'is', 'short']
d = [1,2,'life','is']
e = [1,2,'life', ['is', short']]
위 코드처럼 list는 요소가 없을 수도 있고 숫자가 들어올 수도 있고 문자열이 들어올 수도 있고 리스트 자체가 들어올 수도있다.
List의 인덱싱(Indexing)
List도 Indexing이 가능하다.
a = [1,2,3]
>>> a[0]
1
>>> a[0] + a[2]
4
>>> a[-1]
3
List안에 List가 있는 경우
>>> 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][1]
'b'
>>> a[-1][2]
'c'
List의 슬라이싱(Slicing)
리스트 자료형도 슬라이싱이 가능하다.
>>> 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']
List의 연산
리스트 자료형은 +를 사용해 더할 수 있고 *을 사용해서 반복시킬 수 있다.
리스트 더하기
>>> 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]
리스트의 길이 구하기
리스트의 길이를 구하기 위해서는 len()함수를 이용하면 된다.
>>> a = [1,2,3]
>>> len(a)
3
리스트의 수정과 삭제
리스트에서 값 수정하기
>>> 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]
리스트 관련 함수
append()
리스트의 맨 뒤에 요소를 추가 시킨다.
>>> a = [1,2,3]
>>> a.append(4)
>>> a
[1,2,3,4]
이 때 append()에 들어가는 매개변수의 자료형에는 제한이 없다.
>>> a = [1,2,3,4]
>>> a.append([5,6])
>> a
[1,2,3,4,[5,6]]
sort()
리스트를 순서대로 정렬해준다.
>>> a = [3,2,1,4]
>>> a.sort()
>>> a
[1,2,3,4]
문자도 알파벳 순으로 정렬해준다.
>>> a = ['a','c','b']
>>> a.sort()
>>> a
['a','b','c']
reverse()
리스트를 현재 상태에서 반대로 뒤집어 준다.
여기서 주의할 점은 정렬 후 뒤집어 주는 것이 아니라 현재 상태 그대로 뒤집어 준다는 것이다.
>>> a = ['b','c','a']
>>> a.reverse()
>>> a
['b','c','a']
index()
리스트에 해당값이 있으면 해당 값의 첫번쨰 인덱스를 반환한다.
>>> a = [1,2,3]
>>> a.index(3)
2
>>> a.index(1)
0
만약 리스트에 없는 값을 입력시 ValueError가 발생한다.
a.index(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 0 is not in list
insert(a, b)
리스트의 a번째 인덱스에 b라는 값을 넣어준다.
>>> a = [1,2,3]
>>> a.insert(0,4)
>>> a
[4,1,2,3]
remove()
리스트에서 가장 처음 나오는 해당 값을 삭제 시킨다.
>>> a = [1,2,3,1,2,3]
>>> a.remove(3)
>>> a
[1,2,1,2,3]
여기서 remove(3)을 한 번 더하면 아래와 같이 된다.
>>> a.remove(3)
>>> a
[1,2,1,2]
pop()
리스트의 맨 마지막 요소를 리턴하고 그 요소를 삭제한다.
>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1,2]
count()
리스트에 해당 값이 몇개 있는지 셀 수 있다.
>>> a = [1,2,3,4,1,2,1,1]
>>> a.count(1)
4
extend(리스트)
매개변수로 리스트 자료형만 올 수 있으며 기존의 리스트에 매개변수 리스트를 추가해준다.
>>> a = [1,2,3]
>>> a.extend([4,5])
>>> a
[1,2,3,4,5]
>>> b = [6,7,8,9]
>>> a.extend(b)
>>> a
[1,2,3,4,5,6,7,8,9]
a.extend([4,5])는 a += [4,5]와 같다는 것도 알 수 있다.
'Understanding Python' 카테고리의 다른 글
[py] What is heap? _ 그리고 파이썬의 heapq (0) | 2023.07.17 |
---|---|
[py]_숫자형, 문자열 간단 정리 (0) | 2023.06.30 |
[py] capitalize()와 upper()와 title()의 차이점 (0) | 2023.06.22 |
[py] reverse()와 reversed()의 차이점 (0) | 2023.06.19 |