반응형
파이썬에서 리스트는 여러 개의 항목을 순서대로 저장할 수 있는 가변적(변경 가능한) 시퀀스 자료형입니다. 리스트는 대괄호 []로 묶어서 작성하며, 쉼표 ,로 구분된 항목을 포함합니다. 리스트는 숫자, 문자열, 다른 리스트 등 어떤 자료형의 객체도 포함할 수 있으며, 동일한 리스트에 서로 다른 자료형을 혼합해서 포함할 수도 있습니다.
리스트 생성
리스트는 대괄호 [] 안에 값을 넣어 생성합니다.
# 빈 리스트
empty_list = []
# 정수 리스트
numbers = [1, 2, 3, 4, 5]
# 문자열 리스트
fruits = ['apple', 'banana', 'cherry']
# 혼합형 리스트
mixed = [1, 'hello', 3.14, True]
# 중첩 리스트
nested = [1, [2, 3], [4, 5]]
리스트 접근 및 슬라이싱
리스트의 각 요소는 인덱스를 사용하여 접근할 수 있으며, 슬라이싱을 통해 리스트의 부분 집합을 추출할 수 있습니다. 인덱스는 0부터 시작하며, 음수 인덱스를 사용하여 뒤에서부터 접근할 수 있습니다.
fruits = ['apple', 'banana', 'cherry']
# 인덱싱
print(fruits[0]) # 출력: apple
print(fruits[1]) # 출력: banana
print(fruits[-1]) # 출력: cherry
# 슬라이싱
print(fruits[1:3]) # 출력: ['banana', 'cherry']
print(fruits[:2]) # 출력: ['apple', 'banana']
print(fruits[1:]) # 출력: ['banana', 'cherry']
print(fruits[:]) # 출력: ['apple', 'banana', 'cherry']
리스트 수정
리스트는 가변 자료형이므로, 요소를 변경하거나 추가, 삭제할 수 있습니다.
요소 변경
fruits = ['apple', 'banana', 'cherry']
fruits[1] = 'blueberry'
print(fruits) # 출력: ['apple', 'blueberry', 'cherry']
요소 추가
# 끝에 추가
fruits.append('orange')
print(fruits) # 출력: ['apple', 'blueberry', 'cherry', 'orange']
# 특정 위치에 삽입
fruits.insert(1, 'grape')
print(fruits) # 출력: ['apple', 'grape', 'blueberry', 'cherry', 'orange']
요소 삭제
# 특정 요소 삭제
fruits.remove('blueberry')
print(fruits) # 출력: ['apple', 'grape', 'cherry', 'orange']
# 인덱스로 삭제
del fruits[2]
print(fruits) # 출력: ['apple', 'grape', 'orange']
# 마지막 요소 제거 및 반환
last_fruit = fruits.pop()
print(last_fruit) # 출력: orange
print(fruits) # 출력: ['apple', 'grape']
# 특정 인덱스 요소 제거 및 반환
second_fruit = fruits.pop(1)
print(second_fruit) # 출력: grape
print(fruits) # 출력: ['apple']
리스트 메서드
리스트는 다양한 메서드를 제공하여 데이터를 조작할 수 있습니다.
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 리스트 길이 구하기
print(len(numbers)) # 출력: 11
# 요소 개수 세기
print(numbers.count(5)) # 출력: 3
# 요소의 인덱스 찾기
print(numbers.index(9)) # 출력: 5
# 리스트 확장
numbers.extend([2, 7, 1, 8])
print(numbers) # 출력: [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 2, 7, 1, 8]
# 리스트 정렬
numbers.sort()
print(numbers) # 출력: [1, 1, 2, 2, 3, 3, 4, 5, 5, 5, 6, 7, 8, 9]
# 리스트 역순 정렬
numbers.reverse()
print(numbers) # 출력: [9, 8, 7, 6, 5, 5, 5, 4, 3, 3, 2, 2, 1, 1]
리스트의 복사
리스트를 복사할 때는 얕은 복사와 깊은 복사에 주의해야 합니다.
얕은 복사
original = [1, 2, 3]
shallow_copy = original[:]
shallow_copy.append(4)
print(original) # 출력: [1, 2, 3]
print(shallow_copy) # 출력: [1, 2, 3, 4]
깊은 복사
import copy
original = [[1, 2], [3, 4]]
deep_copy = copy.deepcopy(original)
deep_copy[0][0] = 9
print(original) # 출력: [[1, 2], [3, 4]]
print(deep_copy) # 출력: [[9, 2], [3, 4]]
리스트 컴프리헨션
리스트 컴프리헨션은 리스트를 간결하게 생성할 수 있는 방법입니다.
# 0부터 9까지의 제곱수를 가진 리스트 생성
squares = [x ** 2 for x in range(10)]
print(squares) # 출력: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 조건을 사용한 리스트 컴프리헨션
evens = [x for x in range(10) if x % 2 == 0]
print(evens) # 출력: [0, 2, 4, 6, 8]
리스트를 이용하게 되면 어떠한 데이터에 대해서도 처리가 가능하므로 잘 알아두면 좋습니다
거의 모든 데이터를 리스트를 이용해서 다룰수 있다 해도 과연이 아니죠 .
다른 자료형은 모르더라도 리스트는 꼭 알아두시면 좋겠습니다
#파이썬 #자료형 #리스트 #list #python #데이터분석
반응형
'파이썬 > 자료형' 카테고리의 다른 글
파이썬 자료형 - 집합(set) (0) | 2024.07.30 |
---|---|
파이썬 자료형 - 딕셔너리 (0) | 2024.07.30 |
파이썬 자료형 - 튜플 (0) | 2024.07.30 |
파이썬 자료형 - 문자형 (0) | 2024.07.27 |
파이썬 자료형 - 숫자형 (0) | 2024.07.27 |