본문 바로가기

Python/for코테

[이것이 코딩 테스트다 with Python] 4강 파이썬 문법: 리스트 자료형

※ 다음 강좌의 내용을 정리한 것입니다.

www.youtube.com/watch?v=GUwkMLtDQJE&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=4

 

- 리스트 자료형은 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형입니다.

사용자 입장에서 C나 자바에서의 배열(Array) 및 연결 리스트와 유사한 기능을 지원합니다.

C++의 STL vector와 기능적으로 유사하며, 리스트 대신에 배열 혹은 테이블이라고 부르기도 합니다.

 

- 리스트는 대괄호([])안에 원소를 넣어 초기화하며, 쉼표(,)로 원소를 구분합니다.

비어 있는 리스트를 선언하고자 할 때는 list() 혹은 간단히 []를 이용할 수 있습니다.

a= [0]*10으로 리스트 초기화도 가능합니다.

 

- 인덱스 값을 입력하여 리스트의 특정한 원소에 접근하는 것을 인덱싱(Indexing)이라고 합니다.

파이썬의 인덱스 값은 양의 정수와 음의 정수를 모두 사용할 수 있으며, 음의 정수를 넣으면 원소를 거꾸로 탐색하게 됩니다.

 

- 리스트에서 연속적인 위치를 갖는 원소들을 가져와야 할 때는 슬라이싱(Slicing)을 이용합니다.

대괄호 안에 콜론(:)을 넣어서 시작 인덱스와 끝 인덱스를 설정할 수 있습니다.

끝 인덱스는 실제 인덱스보다 1을 더 크게 설정합니다.

 

- 리스트 컴프리헨션은 리스트를 초기화하는 방법 중 하나이고, 대괄호 안에 조건문과 반복문을 적용하여 리스트를 초기화할 수 있습니다. ex) array = [ i * i for i in range(10) if i % 2 == 1]

 

- 리스트 컴프리헨션은 2차원 리스트를 초기화할 때 효과적으로 사용될 수 있습니다.

특히 NXM 크기의 2차원 리스트를 한 번에 초기화해야 할 때 매우 유용합니다.

좋은 예시: array = [[0] * m for _ in range(n)]

★잘못된 예시: array = [[0] * m] * n 

(위 코드는 전체 리스트 안에 포함된 각 리스트가 모두 같은 객체로 인식됩니다. 참조값을 복사함)

 

- 파이썬에서는 반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 때 언더바(_)를 자주 사용합니다.

ex) for _ in range(5):

 

- 리스트 관련 기타 메서드

 

- 다른언어에서는 removeall이 있지만, 파이썬은 remove만 존재하기 때문에 모두 제거하려면 별도의 코드를 작성해야 합니다.

ex)

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

remove_set = { 3, 5 } #집합 자료형

result = [ i for i in a if i not in remove_set ]