>>> import Queue
>>> q = Queue.PriorityQueue()
>>> a = (1, {'item': 'value'})
>>> q.put(a)
>>> q.queue
[(1, {'item': 'value'})]
>>> a[1]['count'] = 1
>>> q.queue
[(1, {'count': 1, 'item': 'value'})]
>>> q.get()
(1, {'count': 1, 'item': 'value'})
추가 후 'a'값을 변경하면 대기열의 값이 변경되는 이유는 무엇입니까? 튜플 자체는 변경 가능하지 않지만 내부에있는 사전은 변경할 수 있습니다. 그러나 큐가 왜 변경되어야 하는지를 이해할 수 없습니까?우선 순위 대기열 및 Mutability
확인'q.get는() A'를 그리고 당신은 볼 수 그들이 모두 * 같은 튜플에 포인트 *. – satoru
'큐'에 저장되는 튜플에 대한 참조이지 복사본이 아닙니다. – satoru
'q.put (a)'를 실행하면 참조로'a'를'q'로 전달하고'a'는 변경할 수 있습니다. – iMom0