Python/Python

Python 리스트 소개

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

Python 리스트 소개

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에서 데이터를 다룰 때 리스트를 잘 활용해 보세요!

728x90
반응형

'Python > Python' 카테고리의 다른 글

Python 튜플(Tuple) 소개  (0) 2025.06.23
Python 리스트의 고급 기능과 효율적인 활용 방법  (0) 2025.06.22
Python 연산자와 조건문 소개  (0) 2025.06.19
Python 자료형 소개  (0) 2025.06.18
Python 기초 문법 소개  (0) 2025.06.17