이 글에서는 0과 1이 번갈아 배치된 리스트를 초기화하는 방법을 알아봅니다. 리스트의 길이가 주어졌을 때, 짝수 인덱스에는 1을, 홀수 인덱스에는 0을 넣어 [1, 0, 1, 0, ...] 형태의 리스트를 만드는 것이 목표입니다.
Python에서 이를 구현하는 대표적인 두 가지 방법을 소개합니다.
방법 1 — 반복문과 인덱스 활용
가장 기본적인 접근 방식입니다. 아래 단계를 따라 코드를 작성할 수 있습니다.
- 빈 리스트와 원하는 길이(length)를 초기화합니다.
- 길이만큼 반복하면서 인덱스의 홀짝 여부에 따라 0과 1을 번갈아 추가합니다.
- 결과를 출력합니다.
예제 코드
# 빈 리스트 초기화
result = []
length = 7
# 반복하며 값 추가
for i in range(length):
# 인덱스 확인
if i % 2 == 0:
# 짝수 인덱스에는 1 추가
result.append(1)
else:
# 홀수 인덱스에는 0 추가
result.append(0)
# 결과 출력
print(result)실행 결과
[1, 0, 1, 0, 1, 0, 1]
방법 2 — 슬라이싱(Slicing) 활용
반복문 없이 슬라이싱을 사용하면 더 간결하게 처리할 수 있습니다. 아래 단계를 따릅니다.
- None 값을 길이만큼 가진 리스트를 생성합니다.
- [::2] 슬라이스에 1들을, [1::2] 슬라이스에 0들을 할당합니다.
- 결과를 출력합니다.
예제 코드
import math # 길이와 리스트 초기화 length = 7 result = [None] * length _1s_count = math.ceil(length / 2) _0s_count = length - _1s_count # 0과 1을 슬라이싱으로 배치 result[::2] = [1] * _1s_count result[1::2] = [0] * _0s_count # 결과 출력 print(result)
실행 결과
[1, 0, 1, 0, 1, 0, 1]
보너스 — 리스트 컴프리헨션 한 줄 표현
위 두 방법 외에도 리스트 컴프리헨션(list comprehension)을 사용하면 한 줄로 동일한 결과를 얻을 수 있습니다.
length = 7 result = [1 if i % 2 == 0 else 0 for i in range(length)] print(result) # [1, 0, 1, 0, 1, 0, 1]
이 방식은 코드가 짧고 직관적이라 실무에서도 자주 사용됩니다.
마무리
지금까지 Python에서 0과 1을 번갈아 배치한 리스트를 초기화하는 세 가지 방법을 살펴보았습니다. 작은 리스트라면 어떤 방법이든 충분하지만, 성능과 가독성을 고려하면 상황에 맞는 방식을 선택하는 것이 좋습니다. 글에 대해 궁금한 점이 있다면 댓글로 남겨주세요.