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

Python에서 0과 1을 번갈아 배치해 리스트 초기화하는 방법

이 글에서는 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을 번갈아 배치한 리스트를 초기화하는 세 가지 방법을 살펴보았습니다. 작은 리스트라면 어떤 방법이든 충분하지만, 성능과 가독성을 고려하면 상황에 맞는 방식을 선택하는 것이 좋습니다. 글에 대해 궁금한 점이 있다면 댓글로 남겨주세요.