Python을 배워보자/4. 자료 구조

파이션 리스트 생성, 요소 접근, 수정, 삭제

_Blue_Sky_ 2024. 9. 21. 15:13
728x90
728x90

파이썬 리스트: 생성, 접근, 수정, 삭제 심층 분석

파이썬 리스트란 무엇인가?

파이썬 리스트는 다양한 데이터 타입의 값들을 순서대로 저장할 수 있는 가변적인 데이터 구조입니다. 즉, 리스트에 저장된 값들을 언제든지 추가, 삭제, 수정할 수 있습니다. 리스트는 대괄호 [] 안에 쉼표(,)로 구분하여 값들을 나열하는 형태로 표현됩니다.

리스트 생성하기

# 빈 리스트 생성
empty_list = []

# 다양한 데이터 타입을 포함하는 리스트 생성
my_list = [1, 2, 3, "apple", "banana", True]
 
  • 빈 리스트: 아무런 값도 포함하지 않는 리스트입니다.
  • 다양한 데이터 타입: 리스트는 숫자, 문자열, 불리언 값 등 다양한 데이터 타입을 함께 저장할 수 있습니다.
728x90

리스트 요소에 접근하기

리스트의 각 요소는 인덱스를 통해 접근합니다. 파이썬의 인덱스는 0부터 시작합니다.

my_list = [10, 20, 30, 40]
print(my_list[0])  # 첫 번째 요소 출력 (10)
print(my_list[2])  # 세 번째 요소 출력 (30)
  • 음수 인덱스: 리스트의 끝에서부터 역순으로 접근할 때 사용합니다. my_list[-1]은 마지막 요소를 의미합니다.

리스트 요소 수정하기

리스트의 요소는 인덱스를 사용하여 직접 수정할 수 있습니다.

my_list = [10, 20, 30, 40]
my_list[1] = 50
print(my_list)  # [10, 50, 30, 40]
 

리스트 요소 추가하기

  • append(): 리스트의 맨 뒤에 요소 추가
  • insert(): 특정 위치에 요소 추가
my_list = [10, 20, 30]
my_list.append(40)  # [10, 20, 30, 40]
my_list.insert(1, 50)  # [10, 50, 20, 30, 40]
 

리스트 요소 삭제하기

  • del: 인덱스를 사용하여 요소 삭제
  • remove(): 값을 사용하여 첫 번째로 발견되는 요소 삭제
  • pop(): 특정 인덱스의 요소를 삭제하고 반환 (스택 연산에 유용)
my_list = [10, 20, 30, 40]
del my_list[1]  # [10, 30, 40]
my_list.remove(30)  # [10, 40]
removed_item = my_list.pop(0)  # [40]

리스트 슬라이싱

리스트의 일부분을 추출하여 새로운 리스트를 생성할 수 있습니다.

my_list = [10, 20, 30, 40, 50]
sub_list = my_list[1:4]  # [20, 30, 40]
  • my_list[start:end:step]: start부터 end-1까지 step만큼 건너뛰며 슬라이싱

리스트 연산

  • +: 두 개의 리스트를 연결하여 새로운 리스트 생성
  • *: 리스트를 반복하여 새로운 리스트 생성
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2  # [1, 2, 3, 4, 5, 6]
repeated_list = list1 * 3  # [1, 2, 3, 1, 2, 3, 1, 2, 3]
 

리스트의 길이 구하기

len() 함수를 사용하여 리스트의 요소 개수를 구할 수 있습니다.

my_list = [1, 2, 3]
length = len(my_list)  # 3
 

리스트 관련 함수들

  • count(): 특정 값이 리스트에 몇 번 등장하는지 계산
  • index(): 특정 값의 인덱스를 반환 (값이 없으면 ValueError 발생)
  • sort(): 리스트를 오름차순으로 정렬
  • reverse(): 리스트의 순서를 반대로 뒤집기
my_list = [3, 1, 2]
count = my_list.count(1)  # 1
index = my_list.index(2)  # 2
my_list.sort()  # [1, 2, 3]
my_list.reverse()  # [3, 2, 1]

리스트 복사

리스트를 복사할 때는 단순히 = 연산자를 사용하면 원본 리스트와 복사본이 같은 객체를 참조하게 됩니다. 새로운 리스트를 생성하려면 슬라이싱이나 copy() 메소드를 사용해야 합니다.

original_list = [1, 2, 3]
copied_list = original_list[:]  # 슬라이싱을 이용한 복사
 

2차원 리스트

리스트 안에 리스트를 포함하여 2차원 배열과 같은 구조를 만들 수 있습니다.

matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
 

결론

파이썬 리스트는 다양한 기능과 유연성을 제공하여 데이터 처리에 있어 매우 유용한 도구입니다. 위에서 설명한 내용들을 바탕으로 다양한 문제를 해결하고 효율적인 코드를 작성할 수 있을 것입니다.

 

728x90
728x90