আমি কোনও তালিকার সাথে মেলে এমন তালিকার প্রথম উপাদানটি খুঁজে পেতে একটি মূর্তিযুক্ত উপায় চাই।
বর্তমান কোডটি বেশ কুৎসিত:
[x for x in seq if predicate(x)][0]
আমি এটিকে পরিবর্তন করার বিষয়ে ভেবেছিলাম:
from itertools import dropwhile
dropwhile(lambda x: not predicate(x), seq).next()
তবে আরও কিছু মার্জিত কিছু থাকতে হবে ... এবং এটি মিলবে None
যদি কোনও মিল না পাওয়া যায় তবে ব্যতিক্রম বাড়ানোর পরিবর্তে এটি কোনও মান ফেরত দিলে ভাল লাগবে ।
আমি জানি আমি কেবল একটি ফাংশন সংজ্ঞায়িত করতে পারলাম:
def get_first(predicate, seq):
for i in seq:
if predicate(i): return i
return None
তবে এই জাতীয় ইউটিলিটি ফাংশনগুলির সাথে কোডটি পূরণ করা শুরু করা একেবারেই স্বাদযুক্ত নয় (এবং লোকেরা সম্ভবত লক্ষ্য করবেন না যে তারা ইতিমধ্যে সেখানে রয়েছে, তাই তারা সময়ের সাথে সাথে পুনরাবৃত্তি করার প্রবণতা দেখায়) যদি ইতিমধ্যে একই রকম সরবরাহ করা থাকে তবে