zaki work log

作業ログやら生活ログやらなんやら

[JavaScript / Python] 配列内に指定の要素が含まれるかどうかをチェック (備忘録)

よく使うけとすぐ忘れるので。

JavaScript

includesを使う。

developer.mozilla.org

基本構文

array.include(item);

例:httpステータスチェック

httpレスポンスコードが200/201/202/203だったら処理をする、の場合

status = get_http_status();
if ([200, 201, 202, 203].includes(status)) {
    ...
}

Python

inを使う。

docs.python.org

基本構文

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さんコメントありがとうございます!

前述コードをsetを使って集合に変換してinを使う。

status = get_http_status()
data_set = set((200, 201, 202, 203))
if status in data_set:
    ...