-
파이썬 기초 : 리스트(List)🐍 Python 2025. 1. 19. 18:59728x90
리스트(List)의 개념 및 특징
- 정의
- 파이썬에서 가장 기본적인 시퀀스(Sequence) 자료형 중 하나로, 여러 요소(값)를 순서 있게 저장할 수 있습니다.
- 대괄호([ ])를 사용하여 만들고, 내부 요소들은 콤마(,)로 구분합니다.
- 특징
- 가변(Mutable): 생성된 이후에도 요소를 자유롭게 추가, 삭제, 변경할 수 있습니다.
- 순서(Ordered) 보장: 입력된 순서대로 요소가 유지되며, 인덱스로 접근할 수 있습니다.
- 중복 요소를 허용합니다.
- 각 요소들은 서로 다른 자료형(정수, 문자열, 불리언, 객체 등)을 가질 수 있습니다.
- 활용 사례
- 순차적인 데이터 관리 (예: 학급 명단, 주문 목록 등)
- 반복문을 통해 데이터 처리 (예: for문을 이용한 데이터 가공)
- 필요에 따라 리스트 내 요소를 정렬하거나, 슬라이싱(부분만 추출)하여 가공 등에 사용할 수 있습니다.
리스트 생성 및 초기화
빈 리스트 생성
초기값이 있는 리스트 생성
중첩 리스트(Nested List)- 리스트 안에 다른 리스트를 요소로 가질 수 있습니다.
리스트 접근 및 슬라이싱
인덱스(Index) 접근
- 리스트의 인덱스는 0부터 시작합니다.
- 음수 인덱스를 사용하면, 뒤에서부터 요소에 접근할 수 있습니다. (예: -1은 마지막 요소)
슬라이싱(Slicing)
- 리스트의 특정 구간을 추출하기 위해 슬라이싱 문법을 사용합니다.
- 리스트[start:end:step] 형태로, start 인덱스부터 end-1 인덱스까지 step 간격으로 요소를 추출합니다.
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(numbers[2:5]) # [2, 3, 4] (인덱스 2부터 4까지) print(numbers[:4]) # [0, 1, 2, 3] (처음부터 인덱스 3까지) print(numbers[6:]) # [6, 7, 8, 9] (인덱스 6부터 끝까지) print(numbers[::2]) # [0, 2, 4, 6, 8] (2칸씩 건너뛰며 추출) print(numbers[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (역순)
리스트 주요 메서드 및 기능
아래는 리스트에서 자주 사용하는 메서드와 기능, 간단한 예시를 정리한 내용입니다.
추가(Add)
1. append(value)
리스트의 맨 뒤에 요소를 추가합니다.
2. insert(index, value)
지정한 위치(index)에 요소를 추가합니다.
3. 리스트 확장 (extend 또는 + 연산자)다른 리스트(또는 반복 가능한 객체)의 모든 요소를 현재 리스트에 이어붙이는 메서드.삭제(Remove)
1. pop(index=-1)
리스트의 마지막 요소(또는 지정 인덱스의 요소)를 꺼내면서 삭제하고, 그 값을 반환합니다.
2. remove(value)리스트에서 해당 값을 가진 첫 번째 요소를 찾아 삭제합니다.3. del 리스트[index]특정 인덱스의 요소를 삭제합니다.4. clear()리스트의 모든 요소를 제거하여 빈 리스트로 만듭니다.정렬(Sort) 및 기타 메서드
- sort(), sorted()
- 리스트를 오름차순으로 정렬합니다. (기본적으로 알파벳 순 또는 숫자 오름차순)
- sort(reverse=True)로 내림차순 정렬 가능
- sorted(리스트)는 정렬된 새로운 리스트를 반환하고, 원본은 그대로 유지합니다.
- index(value)
- 리스트에서 해당 값을 가진 첫 번째 요소의 인덱스를 반환합니다.
- count(value)
- 리스트 내에서 특정 값이 등장하는 횟수를 반환합니다.
- reverse()
- 리스트의 순서를 뒤집습니다. (단순 역순, 정렬과는 다른 개념)
리스트 활용 예제
리스트를 사용한 합계, 평균 구하기
리스트 컴프리헨션(List Comprehension)
짧고 간결한 문법으로 리스트 생성 및 가공이 가능합니다.
- 기본적인 제곱수 리스트 생성
[i**2** for i in range(10)] : 이 부분이 list comprehension 입니다.
for i in range(10) : 0부터 9까지의 숫자를 i에 순서대로 할당합니다.( 자바에서 배운 포문과 비슷 합니다.)
i**2 : 각 i에 대해 제곱을 계산합니다.
[] : 계산된 결과를 리스트로 만듭니다.print(squares): 생성된 리스트를 출력합니다.
- 짝수 제곱수만 추출하기
if i % 2 == 0 : 이 부분이 추가되어 짝수 조건을 검사합니다.
i % 2 == 0 : i를 2로 나눈 나머지가 0이면 True (짝수)를 의미합니다.
전체 로직 : 0부터 9까지의 숫자 중 짝수인 숫자만 골라 제곱하고, 그 결과를 리스트에 담습니다.
중첩 리스트 다루기
주요 메서드 및 기능 표 (요약)
메서드 / 기능 설명 예시 (코드 / 결과) 생성 대괄호 [...]로 리스트 생성 my_list = [1, 2, 3] 인덱스 접근 리스트[index]로 접근 my_list[0] → 첫 번째 요소 슬라이싱(Slicing) [start:end:step]로 부분 추출 my_list[1:4] → 인덱스 1~3 까지 append(value) 맨 뒤에 요소 추가 my_list.append(4) → [1, 2, 3, 4] insert(index, value) 특정 인덱스 위치에 요소 추가 my_list.insert(1, 99) → [1, 99, 2, 3] extend(iterable) 다른 리스트나 반복 가능한 객체를 이어 붙임 my_list.extend([5, 6]) → [1, 2, 3, 5, 6] pop(index=-1) 마지막 요소(또는 특정 인덱스)를 꺼내면서 삭제 x = my_list.pop() → x가 꺼낸 값, 리스트에서 제거됨 remove(value) 해당 값을 가진 첫 번째 요소를 삭제 my_list.remove(2) del 리스트[index] 특정 인덱스 요소를 삭제 del my_list[0] clear() 모든 요소를 제거 (빈 리스트가 됨) my_list.clear() → [] sort() / sorted() 오름차순 정렬 (reverse=True로 내림차순 가능) my_list.sort()
sorted_list = sorted(my_list)index(value) 해당 값의 첫 번째 인덱스를 반환 my_list.index(10) count(value) 해당 값이 리스트에 몇 번 들어있는지 반환 my_list.count(2) reverse() 리스트의 순서를 뒤집음 (역순) my_list.reverse() 리스트 컴프리헨션 [표현식 for 변수 in 반복객체 if 조건] 형태의 축약 문법 [x**2 for x in range(5)] → [0, 1, 4, 9, 16] 728x90'🐍 Python' 카테고리의 다른 글
파이썬 기초 : 세트(Set) (0) 2025.01.19 파이썬 기초 : 딕셔너리(Dictionary) (0) 2025.01.19 파이썬 기초 : 리스트(List), 딕셔너리(Dictionary), 튜플(Tuple), 세트(Set) (0) 2025.01.19 파이썬 기초 : 변수, 숫자, 그리고 연산 (0) 2025.01.18 파이썬 기초 : Library 종류 및 설치방법 (0) 2025.01.17 - 정의