Python for AI, Embedded/Python: Core & Automation

Python 리스트 사용법 완벽 정리: 기본 개념부터 예제까지 한 번에

임베디드 친구 2025. 6. 21. 09:37
728x90
반응형

Python에서 가장 기본적이고 많이 사용되는 자료구조 중 하나는 '리스트(List)'입니다. 리스트는 여러 개의 값을 하나의 변수에 저장할 수 있는 자료형으로, 유연하고 사용하기 쉬워 Python 프로그래밍에서 중요한 역할을 합니다. 이번 포스팅에서는 Python의 리스트가 어떤 특징을 가지고 있으며, 기본적인 조작 방법을 어떻게 사용하는지 알아보겠습니다.

리스트란 무엇인가요?

리스트는 여러 개의 데이터를 순서대로 저장할 수 있는 가변적 크기의 배열입니다. 리스트는 다양한 자료형의 데이터를 혼합하여 저장할 수 있으며, 각 항목은 인덱스를 통해 접근할 수 있습니다. Python에서 리스트는 대괄호 []로 정의하며, 요소들은 쉼표 ,로 구분합니다.

my_list = [1, 2, 3, "Hello", True]

위 코드에서 정의된 my_list는 정수, 문자열, 그리고 불리언 값을 모두 포함하는 리스트입니다. 리스트는 이처럼 서로 다른 자료형의 요소들을 하나의 리스트 안에 저장할 수 있다는 장점이 있습니다.

리스트의 특징

  1. 순서가 있는 데이터 구조: 리스트는 요소들이 입력된 순서대로 저장됩니다. 따라서 각 요소는 순서(인덱스)를 가지며, 이 순서를 이용해 접근하거나 수정할 수 있습니다.
  2. 가변적 데이터 구조: 리스트의 크기는 동적으로 변할 수 있습니다. 요소를 추가하거나 제거하면서 리스트의 크기를 자유롭게 조절할 수 있습니다.
  3. 중복된 데이터 허용: 리스트는 중복된 값을 허용합니다. 동일한 값이 여러 번 리스트에 존재할 수 있습니다.

리스트 사용법

리스트는 Python에서 매우 유용한 도구이며, 다양한 조작 방법들이 제공됩니다. 여기서는 기본적인 사용법에 대해 알아보겠습니다.

리스트 생성

리스트는 대괄호 []를 사용하여 생성할 수 있으며, 내부에 값을 쉼표로 구분하여 작성하면 됩니다.

# 빈 리스트 생성
empty_list = []

# 초기 값을 가지는 리스트 생성
numbers = [1, 2, 3, 4, 5]

# 서로 다른 자료형을 포함하는 리스트 생성
mixed_list = ["apple", 3.14, False]

리스트 인덱싱과 슬라이싱

리스트는 각 요소에 대해 인덱스를 통해 접근할 수 있습니다. Python의 리스트 인덱스는 0부터 시작하며, 음수 인덱스를 사용해 뒤에서부터 접근할 수도 있습니다.

my_list = [10, 20, 30, 40, 50]

# 인덱싱
print(my_list[0])  # 출력: 10
print(my_list[-1]) # 출력: 50

# 슬라이싱
print(my_list[1:4])  # 출력: [20, 30, 40]
print(my_list[:3])   # 출력: [10, 20, 30]
print(my_list[3:])   # 출력: [40, 50]

슬라이싱을 이용하면 리스트의 특정 구간을 잘라낼 수 있으며, 원본 리스트는 변하지 않고 새로운 리스트가 반환됩니다.

리스트 조작

1. 요소 추가 (append, insert)

  • append(): 리스트의 맨 끝에 요소를 추가합니다.
  • insert(): 특정 위치에 요소를 삽입합니다.
my_list = [1, 2, 3]

# append 사용
my_list.append(4)
print(my_list)  # 출력: [1, 2, 3, 4]

# insert 사용
my_list.insert(1, 10)
print(my_list)  # 출력: [1, 10, 2, 3, 4]

2. 요소 제거 (remove, pop, del)

  • remove(): 특정 값을 찾아 제거합니다. 값이 여러 번 존재하면 첫 번째로 찾은 값만 제거합니다.
  • pop(): 지정한 인덱스의 요소를 제거하고, 그 값을 반환합니다. 인덱스를 생략하면 마지막 요소를 제거합니다.
  • del: 리스트의 특정 위치의 요소를 제거합니다.
my_list = [1, 2, 3, 4, 5]

# remove 사용
my_list.remove(3)
print(my_list)  # 출력: [1, 2, 4, 5]

# pop 사용
value = my_list.pop(1)
print(value)    # 출력: 2
print(my_list)  # 출력: [1, 4, 5]

# del 사용
del my_list[0]
print(my_list)  # 출력: [4, 5]

3. 리스트 확장 (extend)

extend() 메소드를 사용하여 다른 리스트의 요소들을 현재 리스트에 추가할 수 있습니다.

list1 = [1, 2, 3]
list2 = [4, 5, 6]

list1.extend(list2)
print(list1)  # 출력: [1, 2, 3, 4, 5, 6]

리스트의 길이 구하기 (len)

리스트의 요소 개수를 알고 싶을 때는 len() 함수를 사용합니다.

my_list = [1, 2, 3, 4, 5]
print(len(my_list))  # 출력: 5

리스트의 기타 메소드

  • sort(): 리스트의 요소를 오름차순으로 정렬합니다. 내림차순으로 정렬하려면 reverse=True를 인자로 전달합니다.
  • reverse(): 리스트의 요소 순서를 역순으로 뒤집습니다.
  • index(): 리스트에서 특정 값의 인덱스를 반환합니다. 값이 여러 번 존재할 경우 첫 번째로 찾은 인덱스를 반환합니다.
  • count(): 리스트에서 특정 값이 몇 번 나타나는지 반환합니다.
my_list = [3, 1, 4, 1, 5, 9]

# sort 사용
my_list.sort()
print(my_list)  # 출력: [1, 1, 3, 4, 5, 9]

# reverse 사용
my_list.reverse()
print(my_list)  # 출력: [9, 5, 4, 3, 1, 1]

# index 사용
print(my_list.index(4))  # 출력: 2

# count 사용
print(my_list.count(1))  # 출력: 2

리스트와 반복문

리스트는 반복문을 사용해 요소들을 쉽게 처리할 수 있습니다. for문을 사용해 리스트의 각 요소에 접근할 수 있습니다.

my_list = ["apple", "banana", "cherry"]

for fruit in my_list:
    print(fruit)

# 출력:
# apple
# banana
# cherry

리스트의 인덱스와 값을 동시에 얻고 싶다면 enumerate() 함수를 사용할 수 있습니다.

for index, value in enumerate(my_list):
    print(f"Index: {index}, Value: {value}")

# 출력:
# Index: 0, Value: apple
# Index: 1, Value: banana
# Index: 2, Value: cherry

리스트 컴프리헨션

리스트 컴프리헨션(List Comprehension)은 리스트를 간결하고 효율적으로 생성할 수 있는 Python의 특별한 문법입니다. 이를 사용하면 반복문과 조건문을 한 줄로 표현하여 새로운 리스트를 만들 수 있습니다.

# 기존 방법으로 리스트 생성
squares = []
for x in range(10):
    squares.append(x ** 2)

# 리스트 컴프리헨션을 사용한 리스트 생성
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의 리스트는 순서가 있는 여러 데이터를 저장하고, 이를 유연하게 조작할 수 있는 매우 강력한 도구입니다. 리스트의 생성, 인덱싱, 슬라이싱, 요소 추가/제거, 정렬 등 기본적인 사용법을 익히면 데이터 처리를 보다 쉽고 효율적으로 할 수 있습니다. 앞으로 Python에서 데이터를 다룰 때 리스트를 잘 활용해 보세요!

반응형