- 파이썬은 문법 규칙 중 하나가 한 라인에 하나의 할당문만 작성하는 것입니다.
- 하나의 할당문에 한 개, 혹은 여러개의 변수에 값을 할당 할 수 있습니다.
- 이번 글에서는 여러개의 변수에 값을 동시에 할당하는 응용사례를 살펴보겠습니다.
응용사례)
#Python
arr = [0, 1, 2, 3, 4]
queries = [[0, 3],[1, 2],[1, 4]]
def solution(arr, queries):
for query in queries:
a, b = query
arr[a], arr[b] = arr[b], arr[a]
return arr
print(solution(arr, queries))
- 위 코드를 실행 시 [3, 4, 1, 0, 2]가 반환되는데, 특히 arr[a], arr[b] = arr[b], arr[a] 이 라인에서 리스트의 요소 두 개가 서로 교환됩니다.
- 할당 구문의 동작 과정은 다음과 같습니다.
- 우변의 값들인 arr[b]와 arr[a]의 튜플이 만들어집니다.
- 이제 우변의 값들이 좌변의 변수들에 대응되어 동시 할당이 이루어집니다. arr[b]의 값이 첫 번째 변수 arr[a]에 할당되고, arr[a]의 값이 두 번째 변수 arr[b]에 할당됩니다.
- 이 과정을 통해 arr[a]와 arr[b]의 값이 서로 교환됩니다. 따라서 arr[a]의 이전 값은 arr[b]에 저장되고, arr[b]의 이전 값은 arr[a]에 저장됩니다.
위 예시와 같이 파이썬의 다중할당 기능을 통해 리스트 두 요소의 값을 교환할 수 있습니다 :)
'Python' 카테고리의 다른 글
[Python] 문자열을 리스트로 변환 (0) | 2023.08.02 |
---|---|
[Python] 여러 iterable객체의 각 요소를 묶어 튜플로 반환 - zip() (0) | 2023.07.31 |
[Python] 이터러블(iterable)과 시퀀스(sequence) - 파이썬 공식문서 (0) | 2023.07.14 |
[Python] 리스트, 튜플 각 요소에 함수를 적용한 결과를 반환 - map() (0) | 2023.07.11 |
[Python] 리스트 각 str요소를 하나의 문자열로 반환 - join() (0) | 2023.07.08 |