리스트를 바로 복사합니까? 그러나 코드에서 나는 그것을 이해하지 못하는 x = x[:]
을보고있다. 두 사본을 어떻게 똑같이 부를 수 있습니까?[:]는 어떻게 파이썬에서 작동합니까?
4
A
답변
6
오른쪽이 먼저 평가되고 임시 변수에 배치되며 x가 임시 변수에 다시 할당됩니다. 물론 당신은 그것을 보지 못합니다.
2
"[:]은 어떻게 파이썬에서 작동합니까?" 이 a = a
말처럼 정말으로 발생할 가능성이없는 자체
x = x[:]
하여이 특정 표현의 맥락에서 까다로운 조금이다.
당신은 간단한 단어에 x
에 의해 언급 된 목록의 사본을 만들고 a
에 할당
a = x[:]
같은 것을 볼 가능성이 더 높습니다.
당신은 단순히
a = x
두 변수가 같은 위치를 참조 것이고, 변수 중 하나에 대한 변경 사항이 모두 반영 될했다합니다. a = x[:]
In [38]: x = range(5)
In [39]: a = x[:]
In [40]: a
Out[40]: [0, 1, 2, 3, 4]
In [41]: x
Out[41]: [0, 1, 2, 3, 4]
In [42]: a[3] = -99
In [43]: a
Out[43]: [0, 1, 2, -99, 4] # a changes
In [44]: x
Out[44]: [0, 1, 2, 3, 4] # x does not change
주와 비교해
In [31]: x = range(5)
In [32]: a = x
In [33]: a
Out[33]: [0, 1, 2, 3, 4]
In [34]: x
Out[34]: [0, 1, 2, 3, 4]
In [35]: a[3] = 99 # I am making a change in a
In [36]: a
Out[36]: [0, 1, 2, 99, 4]
In [37]: x
Out[37]: [0, 1, 2, 99, 4] # but x changes too!
: @gnibbler 짧은하고 완전한 예제를 제공 여기
는 예를 들어 콜론 표기, a = x
를 사용하지 않는 경우 발생하는 것입니다 (아래의 설명에서) x = x[:]
을 만나고 그 상황에서 할당이 유용한 목적을 제공한다는 것을 알았지 만 (귀하가 어떤 상황에서 왔는지는 알 수 없지만 이 원래 전체).
관련 문제
- 1. 다형성은 어떻게 파이썬에서 작동합니까?
- 2. ajax는 어떻게 파이썬에서 작동합니까?
- 3. get_FIELD_display (django에서)는 어떻게 작동합니까?
- 4. ldexp와 frexp는 어떻게 파이썬에서 작동합니까?
- 5. cofunction이란 무엇이며 파이썬에서 어떻게 작동합니까?
- 6. ListUtils.subtract()는 어떻게 작동합니까?
- 7. ArrayAdapter.getView()는 어떻게 작동합니까?
- 8. `lua_load()`는 어떻게 작동합니까?
- 9. WorkItem.Save()는 어떻게 작동합니까?
- 10. "pointInside :"는 어떻게 작동합니까?
- 11. GetGuiThreadInfo()는 어떻게 작동합니까?
- 12. "|| ="는 어떻게 작동합니까?
- 13. stat()는 어떻게 작동합니까?
- 14. affected_rows()는 어떻게 작동합니까?
- 15. Android에서 Activity.finish()는 어떻게 작동합니까?
- 16. CreateMutex()는 내부적으로 어떻게 작동합니까?
- 17. Jquery : index()는 어떻게 작동합니까?
- 18. "Unfriend Finder"는 어떻게 작동합니까?
- 19. [UIView beginAnimations]는 어떻게 작동합니까?
- 20. 패스 쓰루()는 어떻게 작동합니까?
- 21. IEnumerable에서 ToList()는 어떻게 작동합니까?
- 22. TableRow의 addView()는 어떻게 작동합니까?
- 23. 키워드 "const"는 어떻게 작동합니까?
- 24. 안드로이드에서 readInt()는 어떻게 작동합니까?
- 25. InputStreamReader.close()는 중간에서 어떻게 작동합니까?
- 26. (declare (indent *))는 어떻게 작동합니까?
- 27. iPad "잡지"는 어떻게 작동합니까?
- 28. $ @는 make 조건문에서 어떻게 작동합니까?
- 29. jQuery에서 this.each()는 어떻게 작동합니까?
- 30. jQuerys $ .each()는 어떻게 작동합니까?
'a = a + 1'이있는 것과 같습니다. 우선'a + 1'이 평가되고 그 결과가'a'의 현재 값을 오버라이드합니다. 그러나'x = x [:]'는'x'가 함수 매개 변수가 아니고 인수의 사본을 적용하기를 원하지 않는 것처럼 보입니다. –