[解決済み] と'is'のどちらかを使って文字列を比較すると、異なる結果になることがあるのはなぜですか?
2022-03-15 14:36:01
質問
Pythonのプログラムで、2つの変数に値が設定されているものがあります。
'public'
. 条件式の中で、次のような比較をしています。
var1 is var2
これは失敗しますが、これを
var1 == var2
を返します。
True
.
ここで、Pythonインタプリタを開いて、同じように"is"の比較をしてみると、成功します。
>>> s1 = 'public'
>>> s2 = 'public'
>>> s2 is s1
True
何が足りないのでしょうか?
解決方法は?
is
はIDテストです。
==
は等値性テストです。あなたのコードで起こったことは、インタープリターでこのようにエミュレートされます。
>>> a = 'pub'
>>> b = ''.join(['p', 'u', 'b'])
>>> a == b
True
>>> a is b
False
ということで、同じでないのは当たり前ですよね?
言い換えれば
a is b
は、次のものと同等です。
id(a) == id(b)
関連
-
PicgoのイメージベッドツールをPythonで実装する
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] 2次元アレイにおけるピーク検出
-
[解決済み] Pythonにはクラス内に「プライベート」変数がある?
-
[解決済み】.NETで文字列が不変なら、なぜSubstringはO(n)時間かかるの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
python implement mysql add delete check change サンプルコード
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み] Pythonの文字列比較:is vs == [重複]について