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

파이썬에서 리터럴이 아닌(non-literal) 튜플을 만드는 방법

리터럴이 아닌 파이썬 튜플 만들기

파이썬의 튜플(tuple)은 불변(immutable) 자료형이기 때문에 한 번 생성하면 내부 값을 변경할 수 없습니다. 그렇다면 특정 위치의 값만 다르게 설정된, 즉 리터럴이 아닌(non-literal) 튜플은 어떻게 만들 수 있을까요?

가장 간단한 방법은 먼저 리스트를 생성 → 원하는 값 변경 → 마지막에 튜플로 변환하는 순서로 처리하는 것입니다. 예제 코드는 다음과 같습니다.

def create_non_literal_tuple(a, b, c):
    x = [1] * a
    x[c] = b
    return tuple(x)

create_non_literal_tuple(6, 0, 2)

실행 결과

(1, 1, 0, 1, 1, 1)

위 코드가 동작하는 방식을 살펴보겠습니다.

  • [1] * a : 값 1을 a개 가진 리스트를 생성합니다. (여기서는 길이 6의 리스트)
  • x[c] = b : 인덱스 c 위치의 값을 b로 변경합니다. (여기서는 2번 인덱스를 0으로)
  • tuple(x) : 수정이 완료된 리스트를 튜플로 변환하여 반환합니다.

결과적으로 길이가 6인 튜플의 2번 인덱스 위치에만 0이 들어간 (1, 1, 0, 1, 1, 1)이 만들어집니다. 이처럼 가변적인 리스트를 중간 단계로 활용하면, 동적으로 값을 지정한 튜플을 손쉽게 생성할 수 있습니다.