初心者のメモ

Python enthusiast

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

参考