Pythonは「もしxがa|b|c|dを含むなら...」を表現する、よりきれいな方法を持っていますか?[重複しています]。
2023-10-04 17:09:09
質問
Pythonicな方法で、文字列が
x
の部分文字列であるかどうかを調べる方法です。
y
は
if x in y:
もし
x
と等価かどうかを調べる
a
,
b
,
c
,
d
,
e
,
f
または
g
もPythonicです。
if x in [a,b,c,d,e,f,g]:
しかし、ある文字列
x
のどちらかが含まれているかどうかを調べます。
a
,
b
,
c
,
d
,
e
,
f
または
g
は不格好に見えます。
if a in x or b in x or c in x or d in x or e in x or f in x or g in x
もっと
ピトニック
という文字列があるかどうかを確認する方法はありますか?
x
がリストの要素を含んでいるかどうかをチェックする方法?
ループを使ったり正規表現を使ったりして自分で書くのは簡単なことだと思うのですが。
re.search('(dog|cat|bird|mouse|elephant|pig|cow)', x)
というのがありますが、正規表現を使わないでもっとすっきりした方法はないかと考えていました。
どのように解決するのですか?
Pythonicなアプローチとしては
any()
:
if any(s in x for s in (a,b,c,d,e,f,g)):
リンク先のドキュメントより。
any
( 反復可能 )のいずれかの要素があれば、Trueを返します。 イテラブル のいずれかの要素が真であれば真を返す。iterableが空の場合はFalseを返す。と等価である。
def any(iterable): for element in iterable: if element: return True return False
また、ここではリストの代わりにタプルを使っていることに注意してください。もし、あなたの
a
-
g
の値があらかじめ定義されている場合は、確かにタプルが好ましいでしょう。参照してください。
Pythonではタプルはリストより効率的ですか?
関連
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] Pythonで複数行のコメントを作成する方法はありますか?
-
[解決済み] Python 3で文字列をバイトに変換する最良の方法?
-
[解決済み] Pythonの@propertyデコレーターはどのように機能するのでしょうか?
-
[解決済み] Pythonにはクラス内に「プライベート」変数がある?
-
[解決済み】Pythonで複数のコンストラクタを持つためのクリーンでPythonicな方法は何ですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
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ではリストよりもタプルの方が効率的ですか?
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Django filter queryset __in for *every* item in list
-
[解決済み] Pythonでリストが空かどうかをチェックする方法は?重複
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?