Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 리스트 메소드 완벽 정리: append부터 sort까지

파이썬은 리스트를 손쉽게 다룰 수 있도록 다양하고 강력한 내장 메소드를 제공합니다. 이 메소드들을 활용하면 요소 추가, 삭제, 검색, 정렬 같은 리스트 연산을 복잡한 로직 없이 단 한 줄의 코드로 처리할 수 있습니다.

아래에서 파이썬 리스트에 사용할 수 있는 주요 내장 메소드들의 기능과 실제 동작 예제를 하나씩 살펴보겠습니다.

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()로 순서를 조작할 수 있습니다. 이 메소드들을 상황에 맞게 조합하면 대부분의 리스트 연산을 깔끔하게 처리할 수 있으니, 직접 코드를 실행해 보면서 익혀두시길 권장합니다.