Python のタプルで「not in」が期待どおりに機能しないのはなぜですか?

Barbara Streisand
リリース: 2024-10-30 09:20:03
オリジナル
382 人が閲覧しました

Why Doesn't

Python を使用したリスト内の要素の不在の確認

Python では、リスト内に要素が存在しないことを確認するには、 「not in」演算子。ただし、タプルのリストを操作するときによくある落とし穴が発生します。

初期コード:

提供されたコード内:

if curr_x -1 > 0 and (curr_x-1 , curr_y) not in myList: 

    # Do Something
ログイン後にコピー

プログラマ特定のタプル (curr_x-1、curr_y) が myList にない場合にのみ 'if' 分岐を実行することを目的としています。ただし、コードは誤動作しているようです。

問題の原因:

この問題は、myList にない論理式 (curr_x-1 、curr_y) に起因するものではありません。 。この式は、次の例に示すように、リストにタプルが存在しない場合は True と正しく評価され、存在する場合は False と評価されます。

>>> 3 not in [2, 3, 4]
False
>>> 3 not in [4, 5, 6]
True
ログイン後にコピー

タプルとリスト:

バグはコード内の別の場所にある可能性があります。リストとは異なり、Python ではタプルは不変です。これは、タプルを一度作成すると変更できないことを意味します。これを変更しようとすると、TypeError が発生し、「not in」演算子の操作が中断される可能性があります。

解決策:

潜在的な問題を回避するには問題がある場合は、リスト内のタプルと不在をチェックしているタプルがコード全体で変更されていないことを確認してください。変更する必要がある場合は、タプルの代わりにリストの使用を検討してください。

以上がPython のタプルで「not in」が期待どおりに機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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