# 리스트 언패킹
= [1, 2, 3]
a, b, c print(a, b, c) # 출력: 1 2 3
# 튜플 언패킹
= (4, 5, 6)
x, y, z print(x, y, z) # 출력: 4 5 6
1 2 3
4 5 6
파이썬 시퀀스 언패킹
gabriel yang
October 2, 2024
파이썬에서는 시퀀스 언패킹(sequence unpacking)을 통해 리스트, 튜플 등의 시퀀스 자료형을 여러 변수에 쉽게 할당할 수 있습니다. 특히, 파이썬 3에서는 ’나머지’를 선택할 수 있는 언패킹 기능인 별 표(*
) 문법을 도입하여 더욱 유연하게 시퀀스 데이터를 처리할 수 있게 되었습니다. 이번 글에서는 시퀀스에서 나머지를 선택하는 언패킹 방법을 중심으로 설명드리겠습니다.
시퀀스 언패킹은 리스트나 튜플과 같은 시퀀스에 포함된 값을 각각의 변수에 할당하는 방법입니다. 기본적인 언패킹 예시는 다음과 같습니다.
# 리스트 언패킹
a, b, c = [1, 2, 3]
print(a, b, c) # 출력: 1 2 3
# 튜플 언패킹
x, y, z = (4, 5, 6)
print(x, y, z) # 출력: 4 5 6
1 2 3
4 5 6
위와 같이, 시퀀스의 각 요소가 각각의 변수에 할당됩니다. 그러나 시퀀스의 길이가 더 길거나 변수의 수와 일치하지 않을 경우 별 표(*
) 문법을 사용하여 나머지 값을 한 번에 처리할 수 있습니다.
*
를 활용한 나머지 선택 언패킹파이썬 3에서는 별 표(*
)를 사용하여 나머지 요소를 하나의 변수에 리스트 형태로 할당할 수 있습니다. 이를 통해 유동적인 크기의 시퀀스를 언패킹할 때 매우 유용합니다.
numbers = [1, 2, 3, 4, 5]
# 첫 번째 요소는 head, 나머지는 tail로 언패킹
head, *tail = numbers
print(head) # 출력: 1
print(tail) # 출력: [2, 3, 4, 5]
1
[2, 3, 4, 5]
위 코드에서 첫 번째 요소는 head
에, 나머지 모든 요소는 tail
에 할당되었습니다.
별 표(*
)는 시퀀스의 어느 위치에서나 사용할 수 있으며, 이를 통해 특정 부분을 추출하고 나머지를 한꺼번에 처리할 수 있습니다.
numbers = [1, 2, 3, 4, 5]
# 첫 번째와 마지막 요소는 각각 head, tail로, 나머지는 middle에 할당
head, *middle, tail = numbers
print(head) # 출력: 1
print(middle) # 출력: [2, 3, 4]
print(tail) # 출력: 5
1
[2, 3, 4]
5
이 예시에서는 첫 번째 요소는 head
, 마지막 요소는 tail
, 나머지 중간의 요소들은 middle
리스트에 할당되었습니다.
튜플에서도 동일하게 *
를 사용하여 나머지 요소를 선택할 수 있습니다.
data = (10, 20, 30, 40, 50)
# 첫 번째 요소와 나머지 요소를 나누어 언패킹
first, *rest = data
print(first) # 출력: 10
print(rest) # 출력: [20, 30, 40, 50]
10
[20, 30, 40, 50]
튜플에서도 *
을 활용하여 나머지 값을 쉽게 처리할 수 있습니다.
*
사용 제한시퀀스 언패킹에서 *
문법은 한 번만 사용할 수 있습니다. 그렇지 않으면 파이썬은 어느 위치의 값을 할당할지 모호해집니다.
따라서 시퀀스에서 나머지를 선택할 때는 하나의 변수만 *
로 지정해야 합니다.
시퀀스 언패킹과 나머지 선택 기능은 다양한 상황에서 유용하게 사용할 수 있습니다. 예를 들어, 함수의 가변 인자를 처리하거나, 특정 데이터 구조에서 일부만 추출할 때 활용할 수 있습니다.
*args
를 사용한 함수에서 인자를 나누어 처리할 수 있습니다.
리스트의 첫 번째 항목은 중요하게 다루고, 나머지를 별도로 처리하는 경우에도 유용합니다.
Date | Title | Author |
---|---|---|
Jan 1, 3000 | 전체 카테고리 | gabriel yang |
Nov 26, 2024 | VSCode에서 Python 디버깅 (launch.json 설정) | gabriel yang |
Nov 23, 2024 | Python 설치된 패키지 확인, 설치와 복원하기 | gabriel yang |
Oct 14, 2024 | JSON 파일에서 특정 key의 값 변경 후 저장하는 방법 | gabriel yang |
Oct 10, 2024 | 날짜 문자열을 날짜 형식으로 변환하기 | gabriel yang |
Oct 8, 2024 | Request를 통한 JIRA REST API 사용방법 | gabriel yang |
Oct 8, 2024 | Request 라이브러리 사용방법 | gabriel yang |
Oct 8, 2024 | Requests 라이브러리로 베이직 인증 API 호출하기 | gabriel yang |
Oct 7, 2024 | Python으로 SSH를 제어하기 | gabriel yang |
Oct 7, 2024 | Pytest로 테스트하기 | gabriel yang |
Oct 7, 2024 | Pytest 기본적인 테스트 실행 방법 | gabriel yang |
Oct 7, 2024 | Pytest Fixture 개념과 필요성 | gabriel yang |
Oct 7, 2024 | CI 환경에서 Pytest 사용하기 | gabriel yang |
Oct 7, 2024 | 파이썬에서 테스트 코드 리팩토링 기법 | gabriel yang |
Oct 5, 2024 | Python os 모듈을 이용한 파일과 폴더 관리 | gabriel yang |
Oct 5, 2024 | Python shutil 모듈을 이용한 파일과 폴더 관리 | gabriel yang |
Oct 5, 2024 | MongoDB 데이터베이스 백업 및 복원 방법 | gabriel yang |
Oct 5, 2024 | Python jira 라이브러리를 이용해 JIRA를 관리하는 방법 | gabriel yang |
Oct 4, 2024 | Python에서 JSON 파일 읽기 및 데이터 활용 | gabriel yang |
Oct 4, 2024 | JSON 데이터 수정하기 | gabriel yang |
Oct 4, 2024 | JSON 파일의 구성요소와 구조 | gabriel yang |
Oct 4, 2024 | Python에서 Git명령 사용하기 | gabriel yang |
Oct 3, 2024 | 파이썬으로 클래스 정의하는 방법 | gabriel yang |
Oct 3, 2024 | 파이썬의 상속(Inheritance) 이해하기 | gabriel yang |
Oct 3, 2024 | 파이썬 클래스의 self 이해하기 | gabriel yang |
Oct 3, 2024 | 파이썬에서 추상 클래스(Abstract Class) 사용하기 | gabriel yang |
Oct 3, 2024 | 파이썬 클래스 활용 예시 | gabriel yang |
Oct 3, 2024 | 파이썬 클래스와 모듈 | gabriel yang |
Oct 3, 2024 | 파이썬에서 Lock을 사용하는 이유와 방법 | gabriel yang |
Oct 2, 2024 | Python에서 zip()을 사용하는 이유와 방법 | gabriel yang |
Oct 2, 2024 | 파이썬 시퀀스 슬라이싱 | gabriel yang |
Oct 2, 2024 | 파이썬에서 Generator를 사용하는 이유와 사용법 | gabriel yang |
Oct 2, 2024 | 파이썬의 @property 기능 | gabriel yang |
Oct 2, 2024 | 파이썬 데이터 정렬 | gabriel yang |
Oct 2, 2024 | 파이썬 딕셔너리 key 예외처리하기 | gabriel yang |
Oct 2, 2024 | 파이썬의 defaultdict 사용법 | gabriel yang |
Oct 2, 2024 | 파이썬의 try-except 사용법 | gabriel yang |
Oct 2, 2024 | 파이썬의 클로저(Clsure) 사용법 | gabriel yang |
Oct 2, 2024 | 파이썬의 가변인자 사용법 | gabriel yang |
Oct 2, 2024 | 파이썬의 컴프리헨션(Comprehension) 사용법 | gabriel yang |
Oct 1, 2024 | 파이썬 가상환경 설정 | gabriel yang |
Oct 1, 2024 | 파이썬을 이용한 테스트 자동화 | gabriel yang |
Oct 1, 2024 | 파이썬 docstring을 사용하는 이유와 방법 | gabriel yang |
Oct 1, 2024 |
파이썬 yield 제너레이터와 효율적인 반복 처리
|
gabriel yang |
Oct 1, 2024 | 파이썬 데이터 언패킹 | gabriel yang |
Oct 1, 2024 | Python에서 enumerate를 사용하는 이유와 사용 방법 | gabriel yang |
Sep 30, 2024 | Python 설치 및 기본 파이썬 버전 설정 | gabriel yang |
Sep 30, 2024 | Python을 이용한 폴더 전체 복사 방법 | gabriel yang |
Sep 30, 2024 | Public Key와 Private Key의 역할 | gabriel yang |
Sep 23, 2024 | Python의 @dataclass 데코레이터 | gabriel yang |
Aug 30, 2024 | Python shell명령 수행하기 (Subprocess) | gabriel yang |
Aug 29, 2024 | Google Colab에서 라이브러리 설치하기 | gabriel yang |
Aug 1, 2024 | 환경변수 설정하고 Python에서 읽어오기 | gabriel yang |
Jan 1, 2024 | 코루틴(coroutine)과 이벤트 루프 | gabriel yang |