파이썬/자료형

파이썬 자료형 - 리스트

kimble2 2024. 7. 30. 21:14
반응형

 

파이썬에서 리스트는 여러 개의 항목을 순서대로 저장할 수 있는 가변적(변경 가능한) 시퀀스 자료형입니다. 리스트는 대괄호 []로 묶어서 작성하며, 쉼표 ,로 구분된 항목을 포함합니다. 리스트는 숫자, 문자열, 다른 리스트 등 어떤 자료형의 객체도 포함할 수 있으며, 동일한 리스트에 서로 다른 자료형을 혼합해서 포함할 수도 있습니다.

리스트 생성

리스트는 대괄호 [] 안에 값을 넣어 생성합니다.

 

# 빈 리스트
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