Unpacking, Extended Unpacking 및 Nested Extended Unpacking
Unpacking은 iterable의 여러 값을 개별 변수에 하나씩 할당하는 편리한 방법입니다. 성명. Python은 단순 언패킹, 확장된 언패킹, 중첩된 확장된 언패킹의 세 가지 유형의 언패킹을 지원합니다.
간단한 언패킹
- 대상 변수에 항목을 순서대로 할당
- 임의의 생략이나 생략을 지원하지 않습니다. 반복
- 예: a, b = 1, 2
확장 풀기
- * 연산자를 사용하여 남은 항목 수집 목록으로
- 목록에서 항목을 생략하거나 반복할 수 있습니다. target
- 예: a, *b = 1, 2, 3, 4, 5
중첩 확장 풀기
- 확장된 압축 해제를 중첩된 시퀀스와 결합
- 값 할당 중첩된 시퀀스에서 대상 변수까지
- 예: *(a, b) = 1, 2
이러한 표현식의 결과를 직접 추론하려면 다음 단계를 따르세요.
1. Iterable을 튜플로 변환:
- 모든 Iterable이 괄호로 명시적으로 작성되지 않은 경우에도 튜플로 표현된다고 가정합니다.
2. 확장된 압축 풀기 규칙 적용:
- * 접두사가 붙은 변수에는 나머지 항목 목록이 할당됩니다.
- *가 없는 변수에는 개별 항목이 할당됩니다.
3. 중첩된 언패킹의 모호성 해결:
- 변수에 중첩된 시퀀스가 할당되면 해당 변수는 개별적으로 언팩됩니다. 요소.
예:
1. (a, b), c = 1, 2, 3
- 변환됨: ((a, b), c) = (1, 2, 3)
- 압축 해제: a = 1, b = 2, c = 3
2. (a, b), c, = [1, 2], '이것'
- 변환됨: ((a, b), c) = ((1, 2), 'this')
- 압축 해제: a = 1, b = 2, c = 'this'
참고:
- 하나의 lvalue 내에 여러 * 연산자를 사용할 수 없습니다. 허용됩니다.
- 빈 반복 가능 항목은 * 대상에 할당될 수 없습니다.
- 중첩 포장을 풀면 모호한 결과가 나올 수 있습니다.
위 내용은 Python의 단순, 확장 및 중첩 풀기는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!