파이썬은 리스트를 손쉽게 다룰 수 있도록 다양하고 강력한 내장 메소드를 제공합니다. 이 메소드들을 활용하면 요소 추가, 삭제, 검색, 정렬 같은 리스트 연산을 복잡한 로직 없이 단 한 줄의 코드로 처리할 수 있습니다.
아래에서 파이썬 리스트에 사용할 수 있는 주요 내장 메소드들의 기능과 실제 동작 예제를 하나씩 살펴보겠습니다.
1. append(x)
리스트의 맨 끝에 새로운 요소 하나를 추가합니다.
예제
#append()
lst = ['Hello', 'Python']
print(lst)
lst.append('Tutorialspoint')
print(lst)출력 결과
['Hello', 'Python'] ['Hello', 'Python', 'Tutorialspoint']
2. clear()
리스트의 모든 요소를 제거하여 빈 리스트로 만듭니다.
예제
#clear() lst = ['Hello', 'Python', 'Tutorialspoint'] print(lst) lst.clear() print(lst)
출력 결과
['Hello', 'Python', 'Tutorialspoint'] []
3. copy()
리스트의 얕은 복사본(shallow copy)을 반환합니다. 단순히 lst1 = lst처럼 대입하면 두 변수가 같은 리스트 객체를 공유하기 때문에 한쪽을 수정하면 다른 쪽도 함께 변경됩니다. 반면 copy()를 사용하면 서로 독립적인 리스트가 만들어집니다.
예제
#copy()
#복사 없이 대입한 경우
lst = ['Hello', 'Python', 'Tutorialspoint']
lst1 = lst
lst1.append('Java')
print(lst)
print(lst1)
#copy()를 사용한 경우
lst = ['Hello', 'Python', 'Tutorialspoint']
lst1 = lst.copy()
lst1.append('Java')
print(lst)
print(lst1)출력 결과
['Hello', 'Python', 'Tutorialspoint', 'Java'] ['Hello', 'Python', 'Tutorialspoint', 'Java'] ['Hello', 'Python', 'Tutorialspoint'] ['Hello', 'Python', 'Tutorialspoint', 'Java']
4. count()
리스트 안에서 지정한 값과 일치하는 요소의 개수를 반환합니다.
예제
lst = ['Hello', 'Python', 'Tutorialspoint', 'Python']
print(lst.count("Python"))
print(lst.count("Tutorialspoint"))
print(lst.count(" "))출력 결과
2 1 0
5. extend(iterable)
다른 리스트(또는 튜플, 문자열 등 반복 가능한 객체)의 요소들을 현재 리스트의 끝에 하나씩 추가합니다. append()가 객체 전체를 하나의 요소로 넣는 것과 달리, extend()는 개별 요소로 풀어서 넣는다는 점이 다릅니다.
예제
#extend() lst = ['Hello', 'Python'] print(lst) lst.extend(['Java', 'CSharp']) print(lst)
출력 결과
['Hello', 'Python'] ['Hello', 'Python', 'Java', 'CSharp']
6. index(x[, start[, end]])
지정한 값과 일치하는 첫 번째 요소의 인덱스를 반환합니다. 선택적으로 탐색 범위의 시작 위치(start)와 끝 위치(end)를 지정할 수 있어, 특정 구간 안에서만 값을 찾는 것도 가능합니다.
예제
#index()
lst = ['Hello', 'Python', 'Tutorialspoint', 'Python']
print(lst.index('Python'))
print(lst.index("Python", 2))출력 결과
1 3
7. insert(i, x)
지정한 위치(i)에 요소(x)를 삽입합니다. 기존 요소들은 뒤로 밀려나며, 인덱스는 0부터 시작합니다.
예제
lst = ['Hello', 'Python', 'Tutorialspoint', 'Python'] print(lst) lst.insert(0, "CPlusPlus") print(lst) lst.insert(3, "Java") print(lst)
출력 결과
['Hello', 'Python', 'Tutorialspoint', 'Python'] ['CPlusPlus', 'Hello', 'Python', 'Tutorialspoint', 'Python'] ['CPlusPlus', 'Hello', 'Python', 'Java', 'Tutorialspoint', 'Python']
8. pop([i])
지정한 위치의 요소를 제거하면서 그 값을 반환합니다. 인덱스를 생략하면 리스트의 마지막 요소가 제거됩니다.
예제
#pop() lst = ['CPlusPlus', 'Hello', 'Python', 'Java', 'Tutorialspoint', 'Python'] print(lst) #인덱스 없이 호출 → 마지막 요소 제거 lst.pop() print(lst) #인덱스를 지정하여 호출 lst.pop(3) print(lst)
출력 결과
['CPlusPlus', 'Hello', 'Python', 'Java', 'Tutorialspoint', 'Python'] ['CPlusPlus', 'Hello', 'Python', 'Java', 'Tutorialspoint'] ['CPlusPlus', 'Hello', 'Python', 'Tutorialspoint']
9. remove(x)
지정한 값과 일치하는 첫 번째 항목만 제거합니다. 값이 여러 개 있어도 앞쪽의 하나만 삭제되며, 해당 값이 리스트에 없으면 ValueError가 발생한다는 점에 유의해야 합니다.
예제
#remove()
lst = ['CPlusPlus', 'Hello', 'Python', 'Java', 'Tutorialspoint', 'Python']
print(lst)
lst.remove('Python')
print(lst)출력 결과
['CPlusPlus', 'Hello', 'Python', 'Java', 'Tutorialspoint', 'Python'] ['CPlusPlus', 'Hello', 'Java', 'Tutorialspoint', 'Python']
10. reverse()
리스트의 요소 순서를 그대로 뒤집습니다. 정렬이 아니라 단순히 순서만 역순으로 바꾼다는 점에 주의하세요.
예제
#reverse() lst = ['CPlusPlus', 'Hello', 'Python', 'Java', 'Tutorialspoint', 'Python'] print(lst) lst.reverse() print(lst)
출력 결과
['CPlusPlus', 'Hello', 'Python', 'Java', 'Tutorialspoint', 'Python'] ['Python', 'Tutorialspoint', 'Java', 'Python', 'Hello', 'CPlusPlus']
11. sort(key=None, reverse=False)
리스트의 요소를 오름차순으로 정렬합니다. reverse=True를 지정하면 내림차순으로 정렬되며, key 매개변수를 활용하면 원하는 기준(예: 문자열 길이, 특정 필드 값)으로 정렬할 수도 있습니다.
예제
#sort() lst = [2, 3, 7, 1, 13, 8, 49] print(lst) #기본 정렬 (오름차순) lst.sort() print(lst) #내림차순 정렬 lst.sort(reverse=True) print(lst)
출력 결과
[2, 3, 7, 1, 13, 8, 49] [1, 2, 3, 7, 8, 13, 49] [49, 13, 8, 7, 3, 2, 1]
마무리
지금까지 파이썬 리스트에서 자주 사용되는 11가지 내장 메소드를 살펴보았습니다. append(), extend(), insert()로 요소를 추가하고, pop(), remove(), clear()로 삭제하며, index(), count()로 검색하고, sort(), reverse()로 순서를 조작할 수 있습니다. 이 메소드들을 상황에 맞게 조합하면 대부분의 리스트 연산을 깔끔하게 처리할 수 있으니, 직접 코드를 실행해 보면서 익혀두시길 권장합니다.