본문 바로가기
Understanding Python

[py] 리스트 자료형 간단 정리(with 점프 투 파이썬)

by Luciditas 2023. 7. 4.
728x90

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]와 같다는 것도 알 수 있다.

728x90