본문 바로가기

Python

파이썬 자료형 리스트의 사용법과 활용

파이썬에서 리스트는 여러 값들을 한 번에 저장하고 관리할 수 있는 자료형 중 하나입니다. 이 포스팅에서는 파이썬의 리스트에 대한 기본적인 사용법과 중첩 리스트, 그리고 스택 구조로 활용 방법에 대해 알아보겠습니다. 

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]입니다.

결론

파이썬의 리스트는 매우 유연하며 다양한 방법으로 활용 가능합니다. 리스트의 기본 사용법부터 중첩 리스트, 그리고 스택으로의 활용까지 다양한 방면에서 사용되니 확실히 익혀두는 것이 좋습니다.