파이썬 list() 메서드 및 함수 사용법 9가지

파이썬 list() 함수는 매우 강력한 데이터 구조 중 하나입니다. 이 글에서는 list()의 기본 사용법과 함께 효율적인 활용 방법을 소개합니다. 프로그래밍 초보자와 숙련자 모두가 알아야 할 필수 개념들을 쉽게 풀어 설명할 테니, 끝까지 읽어보세요.


list()란 무엇인가?

list()는 파이썬에서 리스트 자료형을 만드는 함수입니다. 리스트는 여러 값을 하나의 변수에 저장할 수 있는 가변적인 시퀀스형 자료 구조입니다. 여기서 ‘가변적’이라는 뜻은 리스트에 값을 추가하거나 제거할 수 있다는 뜻입니다. 리스트는 배열과 비슷하지만, 파이썬의 리스트는 다양한 타입의 데이터를 저장할 수 있다는 특징이 있습니다. 예를 들어, 하나의 리스트에 정수, 문자열, 실수 등을 함께 저장할 수 있습니다.

list() 기본 사용법

리스트는 다음과 같은 두 가지 방식으로 생성할 수 있습니다.

  • 대괄호를 사용하는 방식: my_list = [1, 2, 3, 4]
  • list() 함수를 사용하는 방식: my_list = list([1, 2, 3, 4])

두 방식 모두 동일하게 리스트를 생성합니다. list() 함수는 빈 리스트를 생성하거나 다른 반복 가능한 객체(iterable)를 리스트로 변환하는 데도 사용됩니다.

Python
# 빈 리스트 생성
empty_list = []
print(empty_list)
empty_list = list()
print(empty_list)

# 문자열을 리스트로 변환
str_list = list("hello")
print(str_list)

아래 그림에서는 빈 리스트를 만든 결과와 문자열을 리스트로 변환한 경우를 살펴볼 수 있습니다.

그림 1. 파이썬 list()로 빈 리스트 생성 및 문자열을 리스트로 변환
그림 1. 파이썬 list()로 빈 리스트 생성 및 문자열을 리스트로 변환

리스트의 주요 기능

요소 추가하기: append()

리스트에 새로운 요소를 추가할 때는 append() 메서드를 사용합니다. 이 메서드는 리스트의 끝에 요소를 추가합니다.

Python
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)

아래 그림에서 my_list의 제일 마지막에 값 4가 추가된 것을 확인할 수 있습니다.

그림 2. 파이썬 list.append() 메서드로 리스트에 새로운 요소 추가
그림 2. 파이썬 list.append() 메서드로 리스트에 새로운 요소 추가

여러 요소 추가하기: extend()

extend() 메서드를 사용하면 다른 리스트나 반복 가능한 객체의 요소들을 한꺼번에 추가할 수 있습니다.

Python
my_list.extend([5, 6])
print(my_list)

아래 그림에서 리스트 [5, 6]의 값이 my_list의 마지막에 추가된 것을 확인할 수 있습니다.

그림 3. 파이썬 list.extend() 메서드로 여러 요소 추가하기
그림 3. 파이썬 list.extend() 메서드로 여러 요소 추가하기

요소 삽입하기: insert()

특정 위치에 요소를 삽입하려면 insert() 메서드를 사용합니다. 인덱스를 지정하여 원하는 위치에 값을 삽입할 수 있습니다.

Python
my_list = [1, 2, 4]
my_list.insert(2, 3)  # 2번 인덱스에 숫자 3 삽입
print(my_list)

아래 그림에서는 기존에 값 4를 가지고 있던 인덱스 2번 자리에 숫자 3을 삽입하고 값 4는 인덱스 3으로 밀려난 것을 확인할 수 있습니다.

그림 4. 파이썬 list.insert() 메서드로 리스트 중간에 새로운 요소 삽입
그림 4. 파이썬 list.insert() 메서드로 리스트 중간에 새로운 요소 삽입

요소 제거하기: remove(), pop(), del

리스트에서 요소를 제거하는 방법은 여러 가지가 있습니다. list의 메서드 remove()와 pop()을 사용하는 방법이 있으며, 파이썬의 명령어 del을 사용하는 방법이 있습니다.

  • remove(): 리스트에서 처음으로 발견된 해당 요소를 제거합니다.
  • pop(): 특정 인덱스에 있는 요소를 제거하고 그 값을 반환합니다. 인덱스를 지정하지 않으면 마지막 요소를 제거합니다.
  • del: del 명령어를 사용해서 리스트의 특정 인덱스의 요소를 제거할 수 있습니다.
Python
my_list = [1, 2, 3, 4, 5, 2, 3, 4]
my_list.remove(3)
print(my_list)

popped_value = my_list.pop(1)
print(my_list)
print(popped_value)
popped_value = my_list.pop()
print(my_list)
print(popped_value)

del my_list[0]
print(my_list)

1~3 라인은 remove() 메서드를 사용해서 최초로 발견한 3을 삭제합니다. 5~7라인은 pop() 메서드를 사용해서 1번 인덱스의 값을 제거합니다. 8~9 라인은 pop() 메서드를 사용해서 가장 마지막 요소를 제거합니다. 12~13 라인은 0번 인덱스의 값을 제거합니다. 아래는 위의 코드를 실행한 결과입니다.

그림 5. 파이썬 list 객체의 값 제거: remove(), pop(), del 사용
그림 5. 파이썬 list 객체의 값 제거: remove(), pop(), del 사용

리스트 정렬하기: sort(), sorted()

리스트는 sort() 메서드를 사용하여 오름차순으로 정렬할 수 있습니다. 내림차순으로 정렬하고 싶다면 reverse=True 옵션을 추가합니다.

Python
my_list = [3, 1, 5, 4, 2]
my_list.sort()
print(my_list)

my_list.sort(reverse=True)
print(my_list)

아래 그림을 보면 sort() 메서드를 실행하여 오름차순 정렬된 결과와 sort()메서드에 reverse=True를 적용하여 내림차순 정렬된 결과를 각각 확인할 수 있습니다.

그림 6. 파이썬 list 정렬하기: 오름차순, 내림차순
그림 6. 파이썬 list 정렬하기: 오름차순, 내림차순

sorted() 함수는 리스트를 정렬된 새로운 리스트로 반환하는 반면, sort() 메서드는 기존 리스트를 변경합니다.

Python
my_list = [3, 1, 5, 4, 2]
sorted_list = sorted(my_list)
print(my_list)
print(sorted_list)

아래 그림에서는 my_list는 변화 없이 그대로이며, sorted_list에만 정렬된 값이 저장된 것을 확인할 수 있습니다.

그림 7. 파이썬 sorted() 함수로 기존 리스트 보존하기
그림 7. 파이썬 sorted() 함수로 기존 리스트 보존하기

리스트 뒤집기: reverse()

reverse() 메서드는 리스트의 순서를 뒤집습니다. 주의할 점은 이 메서드는 정렬과는 관련이 없고, 단순히 리스트의 현재 순서를 역순으로 변경한다는 것입니다.

Python
my_list = [1, 3, 5, 2, 4]
my_list.reverse()
print(my_list)

아래 그림을 보면 1번 라인의 리스트가 정렬과 무관하게 순서만 뒤집힌 것을 확인할 수 있습니다.

그림 8. 파이썬 list의 reverse() 메서드로 리스트 순서 뒤집기
그림 8. 파이썬 list의 reverse() 메서드로 리스트 순서 뒤집기

리스트 길이 구하기: len()

리스트의 길이, 즉 요소의 개수를 알고 싶다면 len() 함수를 사용하면 됩니다.

Python
my_list = [1, 2, 3, 4, 3, 2, 5]
print(len(my_list))

다음 그림에서는 리스트의 길이가 7인 것을 확인할 수 있습니다.

그림 9. 파이썬 list의 길이 구하기: len() 함수
그림 9. 파이썬 list의 길이 구하기: len() 함수

리스트 포함 여부 확인: in 연산자

리스트에 특정 값이 포함되어 있는지 확인하려면 in 연산자를 사용합니다.

Python
my_list = [1, 2, 3, 4]
print(3 in my_list)
print(5 in my_list)

아래의 그림 보면 3은 my_list의 요소이므로 True가 반환되며, 5는 my_list의 요소가 아니므로 False가 반환되는 것을 확인할 수 있습니다.

그림 10. 파이썬 list의 요소 포함 여부
그림 10. 파이썬 list의 요소 포함 여부

리스트 복사

리스트를 복사할 때는 단순히 대입 연산자를 사용하면 안 됩니다. 대입 연산자는 같은 객체를 참조하게 만들기 때문입니다. 리스트를 복사하려면 얕은 복사가 가능한 copy() 메서드나 list() 함수를 사용하거나, 깊은 복사가 가능한 deepcopy()를 사용해야 합니다. 아래에서는 얕은 복사를 이용한 방법을 살펴보도록 하겠습니다.

Python
original = [1, 2, 3]
copy_list = original.copy()
print(copy_list)

아래 그림은 얕은 복사를 이용해서 리스트를 복사한 예시입니다.

그림 11. 파이썬 list 복사
그림 11. 파이썬 list 복사

주의사항

  • 리스트는 가변적인 자료형이므로, 원본 리스트를 수정하는 메서드들은 리스트 자체를 변경합니다. 원본 데이터를 유지하려면 리스트를 복사하여 작업하는 것이 좋습니다.
  • 리스트는 인덱스를 0부터 시작합니다. 이 점을 염두에 두고 인덱스 작업을 해야 합니다.

정리

파이썬의 list() 함수는 데이터를 저장하고 관리하는 데 매우 유용한 도구입니다. append(), insert(), remove() 등 여러 메서드를 통해 리스트를 유연하게 조작할 수 있으며, sort(), reverse() 등의 메서드를 사용하면 리스트의 순서도 쉽게 변경할 수 있습니다. 리스트는 파이썬에서 가장 많이 쓰이는 자료형 중 하나이므로, 이 글에서 소개한 기능들을 숙지하면 코드 작성과 문제 해결 능력이 크게 향상될 것입니다.

참고자료

관련 포스트

Leave a Comment