[Python] 리스트 자료형

kiteB·2021년 12월 12일
0

Python

목록 보기
2/6
post-thumbnail

python으로 알고리즘 문제를 풀면 리스트를 사용하는 경우가 많다.
평소에는 append, pop 정도만 썼는데 알고리즘 문제를 풀 때
가끔 extend, insert 등을 써야하는 경우가 있어서 이번에 제대로 정리해보려고 한다.

그 전에 리스트 자료형에 대해서도 정리해보자!


[ 리스트 자료형이란? ]

원소들이 연속적으로 저장되는 형태의 자료형. 이때 저장되는 요소들이 모두 같은 자료형일 필요는 없다!

a = []
b = list()
  • 리스트는 대괄호 [ ]로 감싸서 나타내며, 안에는 0개 이상의 원소가 저장될 수 있다.
  • 비어 있는 리스트는 []로 생성하거나, list()를 이용해서 생성할 수 있다.
c = [10, 20, 30]
  • 리스트는 숫자형 데이터를 요소로 가질 수 있다.
d = ['a', 'b', 'cde']
  • 리스트는 또한 문자열을 요소로 가질 수 있다.
e = [23, 'hello']
  • 리스트는 숫자형과 문자열을 동시에 요소로 가질 수 있다.
f = [0, 'hi', ['a', 1]]
  • 원소로 또 다른 리스트를 요소로 가질 수 있다.

📌 정리

  • 리스트는 대괄호로 감싸서 나타내며, 안에는 0개 이상의 원소가 저장될 수 있다.
  • 리스트 안에는 어떠한 자료형도 포함시킬 수 있으며, 다양한 타입의 데이터를
    동시에 저장할 수 있다.

[ 리스트 내부 함수 ]

1. append

a.append(x)	# a는 리스트
  • 리스트의 끝에 항목을 더한다. a[len(a):] = [x]와 동등하다.

예제

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

print(a)	# [1, 2, 3, 4]

2. extend

a.extend(x)	# a는 리스트
  • 리스트의 끝에 이터러블의 모든 항목을 덧붙여서 확장한다. a[len(a):] = iterable와 동등하다.

예제

a = [1, 2, 3]
a.extend([4, 5])	# a += [4, 5]와 동일한 연산

print(a)	# [1, 2, 3, 4, 5, 6]
  • 만약 a.append([4, 5])를 하면 [1, 2, 3, [4, 5]]가 출력된다.
    (⭐appendextend의 차이!)

3. insert

a.insert(i, x)	# a는 리스트
  • 주어진 위치에 항목을 삽입한다.
    • 첫 번째 인자(i)는 삽입되는 요소가 갖게 될 인덱스
  • a.insert(0, x)는 리스트의 처음에 삽입하며, a.insert(len(a), x)a.append(x)와 동등하다.

예제

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

print(a)	# [1, 4, 2, 3]
  • 리스트의 1번째 위치에 4를 삽입하라는 뜻이다.

4. remove

a.remove(x)	# a는 리스트
  • 리스트에서 값이 x와 같은 첫 번째 항목을 삭제한다. x와 일치하는 항목이 없으면 ValueError를 일으킨다.

예제 1 - 정상 동작

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

print(a)	# [1, 3]

예제 2 - ValueError 발생

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

print(a)	# ValueError: list.remove(x): x not in list

5. pop

a.pop(i)	# a는 리스트
  • 리스트에서 주어진 위치에 있는 항목을 삭제하고, 그 항목을 돌려준다.
  • 인덱스를 지정하지 않으면, a.pop()은 리스트의 마지막 항목을 삭제하고 돌려준다.

예제

a = [1, 2, 3, 4]

num1 = a.pop(1)	# 1번째 위치에 있는 항목 삭제 & 반환
print(num1)	# 2

num2 = a.pop()	# 리스트의 마지막 항목 삭제 & 반환
print(num2)	# 4

print(a)	# [1, 3]

6. clear

a.clear()	# a는 리스트
  • 리스트의 모든 항목을 삭제한다. del[a:]와 동등하다.

예제

a = [1, 2, 3]
a.clear()

print(a)	# []

7. index

a.index(x, start, end)	# a는 리스트
  • 리스트에 있는 항목 중 값이 x와 같은 첫 번째 요소의 인덱스를 돌려준다. (인덱스는 0부터 시작). x와 일치하는 항목이 없으면 ValueError를 일으킨다.
  • start, end는 선택적 매개변수로, 검색을 리스트의 특정한 서브 시퀀스로 제한하고 싶을 때 사용한다. (즉, 검색 범위를 제한한다는 뜻) 돌려주는 인덱스는 start 인자가 아니라 전체 시퀀스의 시작을 기준으로 한다.

예제

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

print(idx)	# 1

8. count

a.count(x)	# a는 리스트
  • 리스트에서 x가 등장하는 횟수를 돌려준다.

예제

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

print(cnt)	# 2

9. sort

a.sort()	# a는 리스트
  • 리스트의 항목들을 제자리에서 정렬한다.

자세한 설명은 🔗 여기 참고

예제

a = [6, 3, 4, 8]
a.sort()

print(a)	# [3, 4, 6, 8]

10. reverse()

a.reverse()	# a는 리스트
  • 리스트의 요소들을 제자리에서 뒤집는다.

예제

a = [1, 2, 3]
a.reverse()

print(a)	# [3, 2, 1]

11. copy()

a.copy()	# a는 리스트
  • 리스트의 얕은 사본을 돌려준다. a[:]와 동등하다.

예제

a = [1, 2, 3]
copyList = a.copy()

print(copyList)	# [1, 2, 3]

[ 📘 Reference ]

https://wikidocs.net/14
http://tcpschool.com/python/types_list

profile
🚧 https://coji.tistory.com/ 🏠

0개의 댓글