logo

파이썬의 언패킹 오퍼레이터 📂프로그래밍

파이썬의 언패킹 오퍼레이터

설명

파이썬에서 언패킹unpacking이란, 객체 내의 요소들을 개별적으로 분리하는 것을 말한다. 객체 앞에 *를 붙여 사용한다. 유용한 예를 하나 들자면, 0부터 4까지 그리고 8부터 13까지의 인덱스로 for 반복문을 실행하고 싶다고 하자. for i in (range(5) + range(8, 14))와 같이 코드를 작성하고 싶겠지만, 두 range 사이의 이항연산은 정의되어있지 않다. 이럴때는 언패킹 오퍼레티어 *을 사용하여 아래와 같이 각 range의 요소들을 하나씩 풀어서 새 리스트에 넣으면 된다.

줄리아에서는 스플랫 오퍼레이터라하여 뒤에 ...를 붙여 사용한다.

>>> for i in [*range(5), *range(8, 14)]:
...     print(i)
...
0
1
2
3
4
8
9
10
11
12
13

물론 다른 방법으로도 구현할 수 있다. 직접 예외처리를 할 수도 있고, 다중 for문을 쓸 수도 있다. 하지만 언패킹 오퍼레이터를 사용하면 이미 range가 두 개일 때도 코드가 간결해지고 가독성이 좋아지며, 세 개 이상이면 비교하는 의미조차 없을 정도이다.

# 예외처리
for i in range(14):
    if i < 5 or i >= 8:
        print(i)

# 다중 for문
for r in (range(5), range(8, 14)):
    for i in range(len(r)):
        print(r[i])

환경

  • OS: Windows11
  • Python: 3.10.11