Pythonでリストの特定の値の両隣の値を取得する関数


リストの特定の値の両隣の値を取得したいときがあったのでメモ。

def get_neighbor(target, lis):
    try:
        target_index = lis.index(target)
        before_value = lis[target_index-1] if target_index > 0 else False
        after_value = lis[target_index+1]
    except IndexError:
        after_value = False
    except ValueError:
        before_value = False
        after_value = False
    return before_value, after_value

引数に特定の値とそのリストを渡す。

特定の値のインデックスが0の場合、リストの一番最後の値を指定してしまうのでif文でFalseを入れる。

特定の値がリストの最後の場合、IndexErrorでFalseを入れる。

多分もっといい書き方があると思うけど自分しか使わないしこれでいい。