Bir yüklemle eşleşen listedeki ilk öğeyi bulmanın deyimsel bir yolunu istiyorum.
Geçerli kod oldukça çirkin:
[x için x in seq if predicate(x)][0]
Bunu şu şekilde değiştirmeyi düşündüm:
itertools import dropwhile(lambda x: not yüklem(x), seq).next()
Ama daha zarif bir şey olmalı... Ve bir
Yok değeri döndürmesi iyi olurdu eşleşme bulunmazsa bir istisna oluşturmak yerine.
Biliyorum, şöyle bir işlev tanımlayabilirim:
def get_first(yüklem, sıra): for i in seq : if yüklem(i): return i return None
Ancak kodu bunun gibi yardımcı işlevlerle doldurmaya başlamak oldukça tatsız (ve insanlar muhtemelen zaten orada olduklarını fark etmeyecekler, bu nedenle, zaten aynısını sağlayan yerleşik öğeler varsa, zaman içinde tekrarlanma eğilimindedirler.