ホームページ  >  に質問  >  本文

2 つの Python リストを交換すると、2 つの異なる操作の結果が異なります。その理由は何ですか?

リーリー

最初の操作は次のようになりますが、期待と一致しません:

リーリー

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

2 番目の方法は、リスト b を一時的に保存するために中間値を追加することです。結果は次のようになります:

リーリー

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

仅有的幸福仅有的幸福2705日前713

全員に返信(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 と a は同じリストではないでしょうか? 以下の「中間変数」は、b の以前の値を格納するだけです。最初の方法を使用して 2 番目の方法の効果を実現したい場合は、それを b に代入する代わりに直接置き換えることができます

    リーリー

    返事
    0
  • 大家讲道理

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

    最初の方法は、b の値を変更し、次に a と b を交換することです。2 つ目の方法は、新しい値 Mid を定義し、次に b の値を変更してから、mid を a に代入することです。
    この結果は正しいですが、何が問題ですか?

    返事
    0
  • 伊谢尔伦

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

    リーリー

    この関数の本質は a を返すことですが、途中で変更がある可能性があります。その後

    リーリー

    スワップが 2 つだけの場合:

    リーリー

    返事
    0
  • キャンセル返事