HOWTO · Python

Python에서 0 목록 만들기

이 튜토리얼에서는 Python에서 0으로 이루어진 리스트를 생성하는 방법을 소개합니다. 리스트 컴프리헨션, 곱셈 연산자, numpy 라이브러리 사용 등 다양한 방법을 살펴봅니다. 초보자든 숙련된 프로그래머든, 이 가이드는 명확한 코드 예제와 설명을 제공하여 프로젝트에 필요한 0 리스트를 효율적으로 만들 수 있도록 도와줍니다.

이 페이지의 내용

길이가 n이고 0으로 채워진 Python 리스트를 만들려면 [0] * n을 사용합니다. 예를 들어 [0] * 5는 정수 0이 다섯 개 들어 있는 리스트를 만듭니다. 필요한 길이가 정해져 있고 모든 항목의 값이 같을 때 가장 간단하고 명확한 방법입니다. 아래 예제는 방법을 바로 비교할 수 있도록 n = 5를 사용합니다.

리스트 곱셈으로 길이가 정해진 0 리스트 만들기

리스트 곱셈은 왼쪽에 있는 리스트의 항목을 반복합니다. [0]에는 정수가 하나 들어 있으므로 여기에 n을 곱하면 정수 0이 n개인 리스트가 만들어집니다.

n = 5
zeros = [0] * n

결과는 새 리스트입니다. 횟수가 0이면 []가 만들어지고, 음수여도 []가 만들어집니다. Python은 반복 횟수가 0 이하일 때 시퀀스를 반복하지 않기 때문입니다. 이 예제에서 반복하는 값은 정수이므로 각 리스트 위치의 값을 서로 독립적으로 다시 할당할 수 있습니다. 중첩 리스트처럼 변경 가능한 객체를 반복하면 각 위치가 같은 객체를 참조합니다. 서로 다른 객체를 만들려면 리스트 컴프리헨션을 사용하세요.

리스트 컴프리헨션으로 0 리스트 만들기

리스트 컴프리헨션은 이터러블의 각 항목에 대해 표현식을 한 번씩 평가합니다. 여기서 range(n)은 다섯 번 반복할 값을 제공하고, _는 표현식에서 사용하지 않는 반복 값을 나타냅니다. 대괄호로 감싼 이 표현식을 리스트 컴프리헨션이라고 합니다.

n = 5
zeros = [0 for _ in range(n)]

각 반복에서 값을 계산하거나 생성 규칙을 명확하게 보여 주고 싶을 때 이 형식을 사용하세요. 여기서는 반복 값을 사용하지 않으므로 관례에 따라 _라는 이름을 썼습니다. _는 Python에서 특별한 동작을 하지 않습니다. 각 요소를 서로 다르게 계산하려면 0을 반복 값에 따라 달라지는 표현식으로 바꾸면 됩니다.

각 값을 만들 때 별도 로직이 필요한 경우 루프 사용하기

각 항목을 만들 때 여러 문장이나 조건, 다른 작업이 필요하다면 명시적인 루프가 유용합니다. 반복할 때마다 값을 하나씩 추가합니다.

n = 5
zeros = []
for _ in range(n):
    zeros.append(0)

이 방법도 곱셈이나 리스트 컴프리헨션 예제와 같은 내장 리스트를 만듭니다. 정수를 단순히 반복하는 작업이라면 앞의 두 방법이 더 간결합니다. 항목마다 수행할 작업을 루프 본문에 드러내는 편이 이해하기 쉬울 때 루프를 사용하세요. 실제 프로그램에서는 append(0) 문장을 각 값을 계산하거나 준비하는 작업으로 바꾸면 됩니다.

itertools.repeat()로 0 반복하기

itertools.repeat()는 같은 객체를 반복해서 제공합니다. 값과 횟수를 지정한 다음, 리스트가 필요하면 이터레이터를 list()에 전달합니다.

from itertools import repeat

n = 5
zeros = list(repeat(0, n))

이터레이터를 바로 사용하거나 반복 값 이터레이터를 더 큰 작업에 연결할 때 유용합니다. list(...)는 이터레이터를 모두 소비해 다섯 값을 메모리에 저장합니다. 따라서 결과로 리스트가 필요한 경우에는 보통 [0] * n이 더 간단합니다.

수치 배열이 필요할 때 NumPy 사용하기

NumPy 연산을 사용하는 수치 작업에서는 numpy.zeros(n)으로 0 값이 n개인 NumPy 배열을 만들 수 있습니다. 예를 들어 NumPy가 설치되어 있다면 import numpy as np를 실행한 뒤 zeros = np.zeros(5)로 배열을 만듭니다. 결과는 내장 Python 리스트가 아니라 ndarray입니다. 다른 코드에서 리스트가 꼭 필요할 때만 zeros.tolist()로 변환하세요. NumPy는 별도의 의존성이며 배열 연산, 모양 또는 데이터 형식이 필요할 때 유용합니다. 일반 리스트가 필요하다면 의존성을 추가하지 않고 [0] * n을 사용하세요.

간단하고 길이가 정해진 리스트에는 곱셈을, 항목마다 표현식을 평가하려면 리스트 컴프리헨션을, 별도 작업이 필요하면 루프를, 이터레이터가 유용하면 itertools.repeat()를, 배열이 적합한 자료 구조라면 NumPy를 선택하세요.