よく使うけとすぐ忘れるので。
JavaScript
includes
を使う。
基本構文
array.include(item);
例:httpステータスチェック
httpレスポンスコードが200/201/202/203だったら処理をする、の場合
status = get_http_status(); if ([200, 201, 202, 203].includes(status)) { ... }
Python
in
を使う。
基本構文
item in list
例:httpステータスチェック
JavaScriptの例と同様、httpレスポンスコードが200/201/202/203だったら処理をする、の場合
status = get_http_status() if status in (200, 201, 202, 203): ...
※ リストでなくタプルでもOK
辞書の場合
JavaScriptは配列限定(だよね?)だが、Pythonだと辞書などのシーケンス型全てに使える(とドキュメントに書かれている)
辞書の場合は、キーがあるかテストできる。
key = 'host' data = { 'host': '192.168.0.10', 'user': 'zaki', 'home': '/home/zaki' } if key in data: # dataにはキー`host`を含むのでTrueとなる
集合(追記)
要素数が多く重複もしないのであれば(というか要素チェック時に重複の有無は無視できるはず)、集合に変換すればパフォーマンスが改善される。
nikkieさんコメントありがとうございます!
Pythonはinでリストもタプルも集合も辞書も、要素が含まれるかチェックできますね(辞書はキーのチェック)
— nikkie / にっきー (@ftnext) 2024年11月17日
この記事の例だと気にならないのですが、リストやタプルが長くなってきた場合、集合に変換してinを使うのがおすすめです。
計算量がO(n)->O(1)に変わります(『ハイパフォーマンスPython』)
前述コードをset
を使って集合に変換してin
を使う。
status = get_http_status() data_set = set((200, 201, 202, 203)) if status in data_set: ...