[Python]리스트(List)

nongnola·2024년 6월 25일

Python

목록 보기
4/17

리스트란?

리스트(List)는 파이썬에서 가장 많이 사용되는 데이터 구조 중 하나입니다. 리스트는 여러 개의 값을 하나의 변수에 저장할 수 있도록 해줍니다. 리스트에 저장된 값들은 각기 다른 데이터 타입일 수 있으며, 순서가 유지됩니다.

예를 들어, 다음과 같이 숫자, 문자열, 불리언 값을 포함하는 리스트를 만들 수 있습니다:

my_list = [1, "Hello", True]
print(my_list)  # 출력: [1, "Hello", True]

리스트를 사용하는 이유

리스트를 사용하면 여러 개의 값을 효율적으로 관리하고 조작할 수 있습니다. 특히 반복문과 함께 사용하면 많은 데이터를 쉽게 처리할 수 있습니다. 또한, 리스트는 가변적이기 때문에 요소를 추가, 삭제, 변경할 수 있습니다.

리스트를 사용하면 데이터를 그룹화하고 정리하는 데 매우 유용합니다. 예를 들어, 학생들의 성적을 리스트에 저장하고 평균을 계산할 수 있습니다:

grades = [88, 92, 79, 93, 85]
average_grade = sum(grades) / len(grades)
print(average_grade)  # 출력: 87.4

리스트의 사용법

리스트를 사용하려면 대괄호 []를 사용하여 생성합니다. 리스트의 요소들은 쉼표로 구분합니다. 리스트의 길이는 len() 함수를 사용하여 알 수 있습니다. 리스트의 요소에 접근하려면 인덱스를 사용합니다. 인덱스는 0부터 시작합니다.

예를 들어, 리스트 생성과 요소 접근은 다음과 같습니다:

fruits = ["apple", "banana", "cherry"]
print(fruits[0])  # 출력: apple
print(fruits[1])  # 출력: banana
print(fruits[2])  # 출력: cherry
print(len(fruits))  # 출력: 3

리스트 생성, 정렬 예제

리스트는 다양한 방법으로 생성할 수 있으며, 정렬도 가능합니다. 다음은 몇 가지 예제입니다:

리스트 생성

빈 리스트를 생성하거나 초기 값을 넣어 생성할 수 있습니다:

empty_list = []
numbers = [1, 2, 3, 4, 5]

리스트 정렬

리스트의 요소를 정렬하려면 sort() 메서드를 사용합니다:

numbers = [4, 2, 9, 1]
numbers.sort()
print(numbers)  # 출력: [1, 2, 4, 9]

역순으로 정렬하려면 reverse=True 옵션을 사용합니다:

numbers.sort(reverse=True)
print(numbers)  # 출력: [9, 4, 2, 1]

리스트 메서드 종류

리스트는 다양한 메서드를 제공합니다. 몇 가지 주요 메서드는 다음과 같습니다:

append(): 리스트의 끝에 요소를 추가합니다.
insert(): 지정한 위치에 요소를 추가합니다.
remove(): 리스트에서 첫 번째로 일치하는 요소를 제거합니다.
pop(): 지정한 위치의 요소를 제거하고 반환합니다.
clear(): 리스트의 모든 요소를 제거합니다.
index(): 지정한 값의 첫 번째 위치를 반환합니다.
count(): 지정한 값의 개수를 셉니다.
sort(): 리스트를 정렬합니다.
reverse(): 리스트의 요소 순서를 뒤집습니다.
예를 들어:

my_list = [3, 1, 4, 1, 5, 9, 2]
my_list.append(6)
print(my_list)  # 출력: [3, 1, 4, 1, 5, 9, 2, 6]

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

popped_element = my_list.pop(2)
print(popped_element)  # 출력: 1
print(my_list)  # 출력: [3, 4, 5, 9, 2, 6]

my_list.sort()
print(my_list)  # 출력: [2, 3, 4, 5, 6, 9]

my_list.reverse()
print(my_list)  # 출력: [9, 6, 5, 4, 3, 2]

리스트를 사용할 때 주의할 점

리스트를 사용할 때 주의해야 할 점들도 있습니다. 예를 들어, 리스트는 가변 객체이므로 변경 가능한 데이터를 포함할 때 조심해야 합니다. 리스트의 인덱스를 잘못 참조하면 IndexError가 발생할 수 있습니다.

my_list = [1, 2, 3]
try:
    print(my_list[3])
except IndexError:
    print("인덱스가 범위를 벗어났습니다.")  # 출력: 인덱스가 범위를 벗어났습니다.

또한, 리스트의 복사는 얕은 복사와 깊은 복사에 대해 이해하고 있어야 합니다. 얕은 복사는 리스트 내부의 객체 참조를 복사하므로 원본과 복사본이 같은 객체를 참조하게 됩니다. 반면, 깊은 복사는 모든 객체를 새로 복사합니다.

import copy

original_list = [1, 2, [3, 4]]
shallow_copy = original_list[:]
deep_copy = copy.deepcopy(original_list)

original_list[2][0] = 99

print(original_list)  # 출력: [1, 2, [99, 4]]
print(shallow_copy)   # 출력: [1, 2, [99, 4]] (얕은 복사)
print(deep_copy)      # 출력: [1, 2, [3, 4]]  (깊은 복사)

이와 같이 리스트는 강력하지만, 사용 시 주의가 필요합니다.

0개의 댓글