728x90
반응형
기본 언패킹의 한계점은 언패킹할 시퀀스의 길이를 미리 알고 있어야 한다는 것이다. 따라서 보통 파이썬을 처음하는 사람들은 다음과 같은 코드를 작성한다.
car_ages = [0, 9, 4, 8, 7, 20, 19, 1, 6, 15]
car_ages_descending = sorted(car_ages, reverse=True)
oldest = car_ages_descending[0]
second_oldest = car_ages_descending[1]
others = car_ages_descending[2:]
인덱스와 슬라이싱을 사용한 방법으로 시각적으로 잡음이 많으면서 인덱스로 인한 오류가 발생하기 쉽다.
이런 상황을 위해 파이썬에서는 별표 식을 사용해 모든 값을 담는 언패킹을 할 수 있도록 지원한다.
oldest, second_oldest, *others = car_ages_descending
print(oldest, second_oldest, others)
>>>
20 19 [15, 9, 8, 7, 6, 4, 1, 0]
물론 별표 식을 다른 위치에도 사용가능하다.
oldest, *others, youngest = car_ages_descending
*others, second_youngest, yougest = car_ages_descending
하지만 별표 식이 포함된 언패킹 대입을 처리하려면 필수인 부분이 적어도 하나는 있어야 하며, 별표 식을 두 개 이상 쓸 수도 없다.
728x90
반응형
'언어 > 파이썬' 카테고리의 다른 글
[Effective Python] BETTER WAY 10 - 대입식을 사용해 반복을 피하라 (1) | 2023.01.04 |
---|---|
[Effective Python] BETTER WAY 9 - for나 while 루프 뒤에 else 블록을 사용하지 말라 (0) | 2022.12.31 |
[Effective Python] BETTER WAY 7 - range보다는 enumerate를 사용하라 (0) | 2022.12.29 |
[Effective Python] BETTER WAY 6 - 인덱스를 사용하는 대신 대입을 사용해 데이터를 언패킹해라 (0) | 2022.12.29 |
[Effective Python] BETTER WAY 5 - 복잡한 식을 쓰는 대신 도우미 함수를 작성하라 (0) | 2022.12.28 |