그래서파이썬은 - 참고로 값 defaultdict로 사전을 통과하지하는 방법을
attributes = { 'first_name': None, 'last_name': None, 'calls': 0 }
accounts = defaultdict(lambda: attributes)
문제는 기본 사전 I 통과하는 것입니다 내가 다른 사전의 기본 값으로 사전을 가지고 있다고 into defaultdict (attributes)는 참조로 전달됩니다. 그것을 어떻게 가치로 전달할 수 있습니까? 난 단지 전화 '에 대한 각각의 값을 증가하기 때문에
accounts[1]['calls'] = accounts[1]['calls'] + 1
accounts[2]['calls'] = accounts[2]['calls'] + 1
print accounts[1]['calls'] # prints 2
print accounts[2]['calls'] # prints 2
내가 1을 인쇄하는 그들 각각을 원하는 - 하나의 키의 값을 변경하면 다른 키
예를 들어
의 값을 변경하지 않도록 한 번.
원하는 경우 복사본을 명시 적으로 만들어야합니다. 매개 변수를 전달하는 것은 항상 참조를 전달하는 것과 같습니다. –
파이썬에는 평가 전략이 하나뿐입니다. [공유하여 호출] (https://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing). –
다음과 같이하십시오 : http://stackoverflow.com/questions/3975376/understanding-dict-copy-shallow-or-deep/3975388#3975388 – sangheestyle