変数のコピーと反転文字列(リストなど)の作成

858 ワード

Pythonで次の文を実行すると、
s = [1, 2, 3, 4, 5]
l = s
l.append(6)
print(l)
print(s)

出力の結果は次のとおりです.
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]

なぜなら、l = s行のコードは、sのコピーをlにコピーするのではなく、sの参照(アドレスと理解できる)をlにコピーしたからです.つまり、l変数とs変数は、メモリ内の[1, 2, 3, 4, 5]と同じ場所を指しています.この特性はPython言語そのものから来ている.
では、ある変数のコピーを作成する必要があります.どうすればいいですか.
コードは次のとおりです.
l = s[:] #          ,      ~\(≧▽≦)/~
l.append(6)
print(l)
print(s)

出力の結果は次のとおりです.
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5]

次に、文字列の反転:直接コード:
s = 'Hello world'
print(s[::-1])

出力は次のとおりです.
dlrow olleH

まとめ:この2つのテクニックは簡単ですが、実用的で、実際のプログラミングで皆さんの役に立つことを望んでいます.