>  Q&A  >  본문

두 개의 Python 목록을 교환할 때 두 가지 다른 작업의 결과가 다른 이유는 무엇입니까?

으아아아

첫 번째 작업은 다음과 같습니다. 기대에 크게 부합하지 않습니다.

으아아아

a=[0, 0, 0, 0, 0, 1, 1, 1, 1] | b=[0, 0, 0, 0, 0, 1, 1, 1, 1]

두 번째 방법은 임시 저장 목록 b에 중간 값을 추가하는 것입니다.

으아아아

a=[0, 0, 0, 0, 0, 0, 0, 0, 0] | b=[0, 0, 0, 0, 0, 1, 1, 1, 1]

仅有的幸福仅有的幸福2705일 전715

모든 응답(3)나는 대답할 것이다

  • 淡淡烟草味

    淡淡烟草味2017-05-24 11:37:35

    사실 "결과의 차이"가 무슨 뜻인지 잘 모르겠습니다. 출력이 매우 정상적이지 않나요?
    xor(a,c), 将列表a的每个元素, 和列表c的每个元素取异或结果, 导致列表变成结果a变成[0, 0, 0, 0, 0, 1, 1, 1, 1]
    목록 a를 수정하는 동안 xor 함수도 목록 a를 반환하고 이를 b에 할당합니다. 이렇게 하면 b와 같은 목록이 아닌가요?

    아래의 "중간 변수"는 b의 이전 값을 저장합니다. 첫 번째 방법을 사용하여 두 번째 방법의 효과를 얻으려면 b에 할당하는 대신 직접 바꿀 수 있습니다. 으아아아

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-05-24 11:37:35

    첫 번째 방법은 b의 값을 변경한 후 a와 b를 바꾸는 것입니다. 두 번째 방법은 새로운 값 mid를 정의한 다음 b의 값을 변경한 다음 mid를 a에 할당하는 것입니다

    이 결과는 정확합니다. 무엇이 문제인가요?

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-24 11:37:35

    으아악

    이 함수의 핵심은 a를 반환하는 것인데, 중간에 수정이 있을 수 있고, 그 다음에는

    으아악

    스왑이 두 개뿐인 경우:

    으아악

    회신하다
    0
  • 취소회신하다