🔥 리스트와 리스트 컴프리헨션

464자
6분

파이썬(Python)은 다양한 데이터 구조를 제공하는데, 그중에서도 리스트(List)는 가장 많이 사용되는 유형 중 하나입니다. 이 장에서는 리스트와 그 활용법, 특히 리스트 컴프리헨션(List Comprehension)에 대해 자세히 알아보겠습니다.

리스트(List)

리스트는 여러 값을 순서대로 저장하는 데이터 구조입니다. 각 값은 인덱스(Index)에 의해 접근할 수 있으며, 다양한 타입의 데이터를 하나의 리스트에 저장할 수 있습니다.

# 리스트 예제
my_list = [1, "Hello", 3.14]
print(my_list[0])  # 1 출력
print(my_list[1])  # Hello 출력
 
python

리스트는 수정 가능(Mutable)한 특성을 가지고 있어, 프로그램 실행 중에 내용을 변경할 수 있습니다.

리스트의 기본 연산

리스트에는 다양한 연산을 적용할 수 있습니다. 대표적으로 추가, 삭제, 수정 등이 있습니다.

# 리스트 추가
my_list.append(5)  # 5 추가
print(my_list)  # [1, "Hello", 3.14, 5]
 
# 리스트 특정 위치에 추가
my_list.insert(1, "Python")  # 인덱스 1에 "Python" 추가
print(my_list)  # [1, "Python", "Hello", 3.14, 5]
 
# 리스트 삭제
del my_list[1]  # 인덱스 1의 요소 삭제
print(my_list)  # [1, "Hello", 3.14, 5]
 
python

리스트 슬라이싱(Slicing)

리스트의 일부분을 잘라내어 새로운 리스트를 생성하는 것을 슬라이싱이라고 합니다. 이는 데이터의 특정 부분을 선택하거나 복사할 때 유용합니다.

# 슬라이싱 예제
numbers = [0, 1, 2, 3, 4, 5]
print(numbers[2:5])  # 인덱스 2부터 4까지 [2, 3, 4]
 
# 음수 인덱스 슬라이싱
print(numbers[-3:])  # 뒤에서 세 번째부터 끝까지 [3, 4, 5]
 
python

리스트 컴프리헨션(List Comprehension)

리스트 컴프리헨션은 기존 리스트를 기반으로 새로운 리스트를 만드는 간결하고 효율적인 방법입니다. 이는 반복문과 조건문을 함께 사용할 수 있어 매우 강력합니다.

# 리스트 컴프리헨션 예제
squares = [x**2 for x in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 
# 조건을 포함한 리스트 컴프리헨션
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares)  # [0, 4, 16, 36, 64]
 
python

리스트와 반복문

리스트는 for문과 while문을 사용하여 각 요소를 순회할 수 있습니다. 이를 통해 리스트의 각 요소에 접근하고, 작업을 수행할 수 있습니다.

# for문을 사용한 리스트 순회
for item in my_list:
    print(item)
 
# while문을 사용한 리스트 순회
i = 0
while i < len(my_list):
    print(my_list[i])
    i += 1
 
python

리스트의 다양한 메소드(Method)

파이썬의 리스트는 다양한 메소드를 제공합니다. 이를 통해 리스트를 쉽게 조작할 수 있습니다.

# 리스트 정렬
numbers.sort()
print(numbers)  # 정렬된 리스트 출력
 
# 리스트 뒤집기
numbers.reverse()
print(numbers)  # 뒤집힌 리스트 출력
 
# 요소의 인덱스 찾기
index = numbers.index(3)
print(index)  # 3의 인덱스 출력
 
python

중첩된 리스트(Nested Lists)

리스트 안에 다른 리스트를 포함할 수 있으며, 이를 중첩 리스트라고 합니다. 중첩 리스트는 행렬(Matrix)이나 데이터 테이블을 표현할 때 유용합니다.

# 중첩 리스트 예제
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[1][2])  # 6 출력 (2행 3열 요소)
 
python

연습문제

  1. 0부터 20까지의 숫자 중 짝수만을 포함하는 리스트를 만드세요.
  2. 다음 리스트에서 3의 배수만을 선택하여 새로운 리스트를 만드세요: [1, 3, 4, 6, 7, 9, 11, 12, 15]
  3. 5x5 크기의 이차원 리스트(중첩 리스트)를 생성하고, 각 요소에 그 행과 열의 합을 저장하세요.