한 것


  • 데이터 엔지니어링 데브코스 2주차 자료구조/알고리즘 풀기(2) 강의

배운 것


  • LinkedList를 구현하면서 Python3 다중할당을 확실히 알게 되었다.
    아래 test.py 를 실행시키면 어떤 값이 출력될까? 즉, object 값이 무엇일까?
#test.py
class ListNode:
     def __init__(self, val=0, next=None):
         self.val = val
         self.next = next

if __name__ == "__main__":
	linked_list1 = ListNode(1, None)
	linked_list2 = ListNode(2, None)
	object = None
	object, object.next, object = linked_list1, linked_list2, object # 다중할당
	print(object)
    

정답은 None이다. 다중할당 과정을 살펴보자.

  1. 우변의 값들은 모두 기존값이다. 즉, linked_list1, linked_list2, None는 각 ListNode(1, None), ListNode(2, None), None 이다.

  2. 왼쪽부터 차례로 할당된다.

  3. object = linked_list1 -> object: 1->None

  4. object.next = linked_list2 -> object: 1->2->None

  5. object = None -> object: None


정리하면, 다중할당은 2가지만 기억하자.
1. 할당할 값들은 고정된 기존값이다.
2. 왼쪽 변수부터 차례대로 할당된다.

profile
책임지고 해결하는 개발자

0개의 댓글