본문 바로가기
Programing/Python

Python unpacking은 어떻게 사용하는가?

by 멍멍돌이야 2023. 3. 7.
반응형

이 자습서에서는 코드를 더 간결하게 만들기 위해 Python에서 목록을 압축 해제하는 방법을 배웁니다.

 

1. list unpacking 소개

다음 예제에서는 문자열 목록을 정의합니다.

colors = ['red', 'blue', 'green']

 

List의 첫 번째, 두 번째 및 세 번째 요소를 변수에 할당하려면 다음과 같이 개별 요소를 변수에 할당할 수 있습니다.

red = colors[0]
blue = colors[1]
green = colors[2]

그러나 Python은 이를 수행하는 더 나은 방법을 제공합니다. 시퀀스 언패킹이라고 합니다.

기본적으로 List(및 튜플)의 요소를 여러 변수에 할당할 수 있습니다. 예를 들면 다음과 같습니다.

red, blue, green = colors

이 명령문은 색상 목록의 첫 번째, 두 번째 및 세 번째 요소를 red, blue 및 green 변수에 할당합니다.

이 예에서 왼쪽에 있는 변수의 수는 오른쪽에 있는 목록의 요소 수와 같습니다.

왼쪽에 더 적은 수의 변수를 사용하면 오류가 발생합니다. 

 

사용예:

colors = ['red', 'blue', 'green']
red, blue = colors

Error:

ValueError: too many values to unpack (expected 2)

이 경우 Python은 세 개의 요소를 두 개의 변수로 풀 수 없습니다.

 

2. Unpacking and packing

List의 처음 몇 가지 요소를 풀고 다른 요소는 신경쓰지 않으려면 다음을 수행할 수 있습니다.

  • 먼저 필요한 요소를 변수에 압축 해제합니다.
  • 둘째, 남은 요소를 새 목록으로 압축하고 다른 변수에 할당합니다.
         

변수 이름 앞에 별표(*)를 넣으면 남은 요소를 목록으로 압축하고 변수에 할당합니다. 

사용예:

colors = ['red', 'blue', 'green']
red, blue, *other = colors

print(red)
print(blue)
print(other)

 

Output:

red
blue
['green']

 

이 예에서는 색상 목록의 첫 번째 요소와 두 번째 요소를 red 및 green 변수에 할당합니다. 그리고 List 의 마지막 요소를 다른 변수에 할당합니다.

여기 또 다른 예가 있습니다.

colors = ['cyan', 'magenta', 'yellow', 'black']
cyan, magenta, *other = colors

print(cyan)
print(magenta)
print(other)

Output:

cyan
magenta
['yellow', 'black']

이 예에서는 첫 번째 요소와 두 번째 요소를 변수에 할당합니다. 새 목록의 마지막 두 요소를 압축하고 새로운 List 를 다른 변수에 할당합니다.

 

3. Summary

  • 압축을 풀면 목록의 요소가 여러 변수에 할당됩니다.
  • 이 *variable_name과 같은 변수 앞에 별표(*)를 사용하여 목록의 나머지 요소를 다른 목록으로 압축합니다.
         

 

 

refreance:https://www.pythontutorial.net/python-basics/python-unpack-list/
728x90
반응형

댓글