Python - リスト内で最初に条件に一致する要素を取得する
ls = [10, 2, 20, 5, 50]
のうち、'>10' な最初の要素を取得したいときどうするか?
↓のように書ける
def find(ls): for i in ls: if i > 10: return i answer = find(ls)
が、もっとすっきりさせたい。そんなときはこれ。
found = next(i for i in ls if i > 10)
条件を満たさない可能性がある場合はこれ。
def find(ls): try: return next(i for i in ls if i > 10) except StopIteration: return None
参考