파이썬에서 리스트는 여러 값들을 한 번에 저장하고 관리할 수 있는 자료형 중 하나입니다. 이 포스팅에서는 파이썬의 리스트에 대한 기본적인 사용법과 중첩 리스트, 그리고 스택 구조로 활용 방법에 대해 알아보겠습니다.
1. 리스트 기본 사용법
리스트는 대괄호 안에 원소들을 쉽표(,)로 구분해서 나열합니다. 순서대로 인덱스를 통해 접근할 수 있고 원소의 추가, 삭제, 수정이 가능하다는 특징이 있습니다. 그리고 원소의 데이터 타입이 정해져 있지 않아 숫자, 문자열, 리스트, 딕셔너리 등 다른 데이터 타입을 저장할 수 있습니다.
아래는 기본적인 사용 예시입니다.
# 숫자들로 이루어진 리스트
numbers = [1, 2, 3, 4, 5]
# 문자열들로 이루어진 리스트
fruits = ["mango", "banana", "grape"]
# 서로 다른 데이터 타입의 원소들을 포함하는 리스트
mixed = [1, "apple", 3.14, [1, 2, 3]]
# 인덱스를 사용하여 리스트의 원소에 접근
print(numbers[0]) # 출력: 1
print(fruits[2]) # 출력: grape
슬라이싱
리스트의 일부분을 추출할 때 사용되는 함수입니다.
nums = [0, 1, 2, 3, 4, 5]
sub_nums = nums[1:4] # [1, 2, 3]
리스트 내포(List Comprehension)
리스트 컴프리헨션은 리스트를 생성하는 직관적인 방법입니다. 기존 리스트나 반복할 수 있는 다른 객체로 부터 새로운 리스트를 생성하는 표현식을 말합니다.
기본 형식은 아래와 같이 표현합니다.
[표현식 for 항목 in 반복가능한객체 if 조건]
몇 가지 예를 들어보겠습니다.
# 각 숫자를 제곱한 값으로 만드는 리스트
nums = [1, 2, 3, 4]
squares = [x**2 for x in nums]
## squares = [1,4,9,16]
# 조건문을 사용하는 리스트 컴프리헨션
nums = [1, 2, 3, 4, 5]
even_squares = [x**2 for x in nums if x % 2 == 0]
## even_squares = [4,16] 짝수만 제곱한 새로운 리스트
extend 와 append
append는 리스트 끝에 요소를 추가하는 함수입니다. extend는 리스트와 리스트를 연결해서 연장하는 함수입니다.
list1 = [1, 2, 3]
list2 = [4, 5]
list1.extend(list2) # [1, 2, 3, 4, 5]
insert, remove, pop
특정 위치에 요소를 삽입하는 insert, 특정 값을 찾아 삭제하는 remove, 특정 인덱스의 항목을 제거하는 pop에 대한 예시입니다.
# insert 예시
list1 = [1, 3, 4]
list1.insert(1, 2) # [1, 2, 3, 4]
# remove pop 예시
list1 = [1, 2, 3, 4]
list1.remove(3) # [1, 2, 4]
val = list1.pop(1) # val는 2, list1은 [1, 4]
2. 중첩된 리스트 사용
리스트 내부에 다른 리스트를 포함하는 것을 '중첩된 리스트'라고 합니다. 중첩 리스트를 사용하면 행렬이나 여러 데이터를 계층적으로 저장하는 것이 가능합니다.
# 중첩된 리스트 생성
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(nested_list[1][2]) # 결과는 6입니다.
# 중첩된 리스트 원소에 접근하기
matrix = [[1, 2, 3], [4, 5, 6]]
# 첫 번째 리스트의 첫 번째 원소에 접근
print(matrix[0][0]) # 출력: 1
# 두 번째 리스트의 세 번째 원소에 접근
print(matrix[1][2]) # 출력: 6
3. 리스트를 스택으로 사용하기
스택(Stack)은 자료 구조 중 하나로 후입선출(Last In First Out-LIFO) 구조로 데이터를 저장하고 출력하는 구조를 말합니다. 리스트는 마지막 요소를 추가하거나 삭제하는 동작을 통해 스택(stack)으로 사용할 수 있습니다. 이때 `append()` 메서드와 `pop()` 메서드를 주로 활용합니다.
stack = []
stack.append(1)
stack.append(2)
stack.append(3)
print(stack.pop()) # 결과는 3입니다.
print(stack) # 결과는 [1, 2]입니다.
결론
파이썬의 리스트는 매우 유연하며 다양한 방법으로 활용 가능합니다. 리스트의 기본 사용법부터 중첩 리스트, 그리고 스택으로의 활용까지 다양한 방면에서 사용되니 확실히 익혀두는 것이 좋습니다.
'Python' 카테고리의 다른 글
파이썬의 시각화 필수 도구: Matplotlib (1) | 2023.09.07 |
---|---|
파이썬의 데이터 구조: 리스트, 튜플, 세트, 딕셔너리의 차이점 (0) | 2023.09.06 |
파이썬의 과학 계산 라이브러리: NumPy (0) | 2023.09.05 |
파이썬 함수: 코드 재사용의 핵심 (0) | 2023.09.04 |
파이썬의 조건문과 반복문: 효율적인 프로그래밍의 핵심 (0) | 2023.09.03 |