코딩이 즐겁다

[파이썬 기초] 리스트(List) 타입 사용법 갓벽 가이드 본문

Python

[파이썬 기초] 리스트(List) 타입 사용법 갓벽 가이드

코즐 2025. 1. 23. 09:31
반응형

 

파이썬 리스트(List) 타입이란?

파이썬(Python)의 리스트(List)는 가장 유용하고 많이 사용되는 데이터 타입 중 하나로, 여러 개의 값을 하나의 변수에 저장할 수 있는 순서가 있는 컬렉션입니다. 리스트는 다양한 데이터 타입을 포함할 수 있으며, 가변적(mutable)이라는 특징을 가지고 있습니다.

생성 방법 list(), []
추가 append(값), insert(인덱스번호, 값)
확장 extend(리스트)
삭제 pop(), pop(인덱스번호), remove(값), del, clear()

 


 

리스트 생성

리스트는 대괄호([ ])를 사용하여 생성합니다. 또한 list() 함수를 사용하여 리스트를 생성할 수도 있습니다.

li = list()
print(li) # []

li2 = []
print(li2) # []

 


 

리스트 추가 및 수정

리스트 타입은 append() 함수와 insert() 함수를 사용하여 생성된 리스트에 추가나 수정을 할 수 있습니다.

li = []

li.append('python')
li.insert(0, 'hi')

print(li) # ['hi', 'python']

li[0] = 'hello'
print(li) # ['hello', 'python']

 


 

리스트 확장

리스트 타입은 extend() 함수를 사용하여 확장할 수 있습니다.

a = [1, 2, 3]
b = [4, 5, 6]

a.extend(b)

print(a) # [1, 2, 3, 4, 5, 6]

 


 

리스트 삭제

리스트 타입은 pop()과remove() 함수를 사용하여 리스트 요소를 제거할 수 있습니다.

li = [10, 20, 30, 40, 50, 60, 70, 80]

n = li.pop()
print(n, li) # 80 [10, 20, 30, 40, 50, 60, 70] >> 삭제하는 값 80 리턴

n = li.pop(1)
print(n, li) # 20 [10, 30, 40, 50, 60, 70] >> 삭제하는 값 20 리턴

n = li.remove(10)
print(n, li) # None [30, 40, 50, 60, 70] >> None 리턴

del li[0]
print(li) # [40, 50, 60, 70] >> 특정 인덱스 제거하기

del li[0:2]
print(li) # [60, 70] >> 슬라이싱 방법으로 제거하기

del li[:]
print(li) # [] >> 모두 제거하기

 

💡 del, pop(), remove() 함수의 차이점?

파이썬에서 pop() 과 remove()는 리스트 타입의 메소드이고, del은 키워드 입니다. 그들의 가장 큰 차이점은 pop() 메소드는 무엇을 삭제하는지 리턴값이 존재하고, remove() 메소드는 None 을 리턴합니다. del 키워드는 리턴값이 존재하지 않습니다.

 


 

리스트 형변환 (Type) -> Tuple, Set 타입

li = [1, 2, 3, 1, 2, 3]
print( li, type(li) ) # [1, 2, 3, 1, 2, 3] <class 'list'>

li = tuple(li)
print( li, type(li) ) # (1, 2, 3, 1, 2, 3) <class 'tuple'>

li = set(li)
print( li, type(li) ) # {1, 2, 3} <class 'set'>

 


 

리스트 비우기 (Clear)

li = [10, 20, 30, 40, 50, 60, 70, 80]

li.clear()
print(li) # [] >> 모든 요소 제거

 


 

리스트 인덱싱과 슬라이싱

인덱싱 (Indexing)

리스트의 특정 요소에 접근하려면 인덱스를 사용합니다. 인덱스는 0부터 시작하며, 음수 인덱스를 사용하면 역방향으로 접근할 수 있습니다.

li = [10, 20, 30, 40, 50]

print(li[0], li[1], li[2], li[3], li[4]) # 10 20 30 40 50

print(li[-5], li[-4], li[-3], li[-2], li[-1]) # 10 20 30 40 50

 

슬라이싱 (Slicing)

리스트의 일부를 추출하려면 슬라이싱을 사용합니다. 슬라이싱은 [시작:끝:간격] 형식으로 사용됩니다.

li = [10, 20, 30, 40, 50]

print(li[:]) # [10, 20, 30, 40, 50]

print(li[1:3]) # [20, 30]

print(li[-5:-3]) # [10, 20]

print(li[::2]) # [10, 30, 50] >> 인덱스 증감값 2

print(li[1::2]) # [20, 40] >> 시작 인덱스 1, 인덱스 증감값 2

print(li[::-1]) # [50, 40, 30, 20, 10] >> 리스트 거꾸로 출력

 


 

리스트 타입 복사

얕은 복사 (Shallow Copy)

기본 복사는 얕은 복사를 수행하며, 중첩된 리스트에서는 참조만 복사됩니다.

a = [1, 2, [3, 4]]
b = a[:]
b[2][0] = 100

print(a)  # [1, 2, [100, 4]]
print(b)  # [1, 2, [100, 4]]

 

깊은 복사 (Deep Copy)

중첩 리스트까지 복사하려면 copy 모듈의 deepcopy()를 사용합니다.

import copy

a = [1, 2, [3, 4]]
b = copy.deepcopy(a)
b[2][0] = 100

print(a)  # [1, 2, [3, 4]]
print(b)  # [1, 2, [100, 4]]

 


 

리스트와 반복문

기본 반복

a = [1, 2, 3]
for item in a:
    print(item)

 

인덱스와 함께 반복

a = ["a", "b", "c"]
for i, value in enumerate(a):
    print(f"Index: {i}, Value: {value}")

 


 

리스트 타입 주요 메서드 및 연산 요약

💡 리스트 타입 메서드

메서드 설명 예제
append(x) 리스트의 끝에 요소 추가 a.append(100)
extend(iterable) 리스트 확장 (다른 iterable 추가) a.extend([60, 70])
insert(i, x) 특정 위치(i)에 요소 삽입 a.insert(2, 25)
remove(x) 첫 번째로 등장하는 요소 x 제거 a.remove(20)
pop(i) 특정 위치(i)의 요소 제거 및 반환 a.pop(2)
clear() 모든 요소 제거 a.clear()
index(x) 요소 x의 첫 번째 인덱스 반환 a.index(30)
count(x) 요소 x의 개수 반환 a.count(10)
reverse() 리스트 요소 뒤집기 a.reverse()
sort() 리스트 정렬 (기본: 오름차순) a.sort()

예제:

a = [10, 20, 30, 40, 50]

a.append(60)      # [10, 20, 30, 40, 50, 60]
a.insert(2, 25)   # [10, 20, 25, 30, 40, 50, 60]
a.remove(30)      # [10, 20, 25, 40, 50, 60]
print(a.pop())    # 60 (제거된 요소 반환)
a.sort(reverse=True)  # [50, 40, 25, 20, 10]

 

💡 리스트 연산

연산 설명 예제
+ 두 리스트를 연결 [1, 2] + [3, 4] → [1, 2, 3, 4]
* 리스트를 반복 [1, 2] * 3 → [1, 2, 1, 2, 1, 2]
in 요소 포함 여부 확인 3 in [1, 2, 3] → True
len() 리스트 길이 반환 len([1, 2, 3]) → 3
min() 리스트 최소값 반환 min([1, 2, 3]) → 1
max() 리스트 최대값 반환 max([1, 2, 3]) → 3
sum() 리스트 요소의 합 sum([1, 2, 3]) → 6

 


 

코즐

파이썬을 배우고 싶은 사람은 누구나 파이썬 학원(국비 지원 파이썬 학원)에 가지 않고도 파이썬 공부를 하면서 실력을 쌓아나갈 수 있다고 생각합니다. 

파이썬 온라인 강의 자료를 올리면서 누구나 쉽게 파이썬을 공부하실 수 있도록 최선을 다해서 설명하도록 하겠습니다.

 


 

 

반응형