Python の「append()」演算子と「=」演算子がリストで異なる結果を生成するのはどのような場合ですか?

Mary-Kate Olsen
リリース: 2024-10-28 16:53:29
オリジナル
377 人が閲覧しました

 When Does Python's `append()` and ` =`  Operator Produce Different Results with Lists?

Python の append() 演算子と = 演算子がリストで異なる結果を生成する理由

Python では、append() メソッドと = 演算子が動作しますリストに適用すると異なります。どちらも既存のリストに要素を追加しているように見えますが、実際にはその基礎となる操作により異なる結果が生成されます。

append()

append() メソッドを直接使用する要素または別のリストのオブジェクトを元のリストの末尾に追加します。このプロセスの結果、元のリストへの参照がリストに追加されます。

= Operator

一方、= 演算子は要素ごとの加算を実行します。 2 つのオペランド。リストで使用すると、2 番目のオペランドの要素が最初のオペランドの最後に効果的に連結され、新しいリストが作成されます。

次のコードを考えてみましょう。 :

<code class="python">>>> c = [1, 2, 3]

# Appending a list to itself using append() leads to infinite recursion
c.append(c)

# Element-wise addition using += concatenates the lists
c += c</code>
ログイン後にコピー

Output

最初のケースでは、c.append(c) を使用してリスト c をそれ自体に追加すると、無限再帰が作成されます。これは、c の最後の要素が実際には c 自体への参照であり、この参照がリストに追加されるため、無限ループが発生します。

2 番目のケースでは、c = c を使用すると、要素ごとに実行されます。追加。これは、 c の要素がそれ自体に追加され、新しいリスト [1, 2, 3, 1, 2, 3] が生成されることを意味します。

代替: extend()

あるリストの要素を別のリストに追加することが望ましい動作である場合、= の代わりに extend() メソッドを使用できます。新しいリストを作成せずに、元のリストをその場で変更します。

<code class="python">c.extend([4, 5, 6])</code>
ログイン後にコピー

結論

要約すると、Python の append() メソッドはオブジェクトをリストの末尾に直接追加します。一方、リストの = 演算子は要素ごとの加算を実行し、新しいリストを作成します。方法の選択は、意図する操作と、元のリストの変更が必要かどうかによって異なります。

以上がPython の「append()」演算子と「=」演算子がリストで異なる結果を生成するのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!