পাইথনে আমার কিছু তালিকা উপলব্ধি রয়েছে যাতে প্রতিটি পুনরাবৃত্তি একটি ব্যতিক্রম ছুঁড়ে ফেলতে পারে।
উদাহরণস্বরূপ , যদি আমার কাছে থাকে:
eggs = (1,3,0,3,2)
[1/egg for egg in eggs]
আমি ZeroDivisionError
তৃতীয় উপাদান একটি ব্যতিক্রম পাবেন ।
আমি কীভাবে এই ব্যতিক্রমটি পরিচালনা করতে পারি এবং তালিকার বোধগম্যতা চালিয়ে যেতে পারি?
আমি একমাত্র উপায় হ'ল সহায়ক ফাংশনটি ব্যবহার করা:
def spam(egg):
try:
return 1/egg
except ZeroDivisionError:
# handle division by zero error
# leave empty for now
pass
তবে এটি আমার কাছে কিছুটা জটিল মনে হচ্ছে।
পাইথন এ আরও ভাল উপায় আছে?
দ্রষ্টব্য: এটি একটি সাধারণ উদাহরণ ( উপরে " উদাহরণস্বরূপ " দেখুন) যা আমি স্বীকৃত কারণ আমার আসল উদাহরণটির জন্য কিছু প্রসঙ্গ প্রয়োজন। আমি শূন্য ত্রুটি দ্বারা বিভাজন এড়াতে আগ্রহী নই তবে তালিকার বোধগম্যের ব্যতিক্রমগুলি পরিচালনা করতে।
ndarray
উপযুক্ত সেটিংস সহ একটি নম্পি ব্যবহার করতে পারেন np.seterr
। যে ফলাফল হবে 1/0 = nan
। তবে আমি বুঝতে পারি যে অন্যান্য পরিস্থিতিতে যেখানে এই প্রয়োজন দেখা দেয় সেখানে সাধারণীকরণ হয় না।
[1/egg except ZeroDivisionError: None for egg in (1,3,0,3,2)]
। তবে এটি এখনও খসড়া মোডে। আমার অন্ত্র অনুভূতি হ'ল এটি গৃহীত হবে না। ইমো এক্সপ্রেশন খুব অগোছালো পেতে পারে (একাধিক ব্যতিক্রমগুলি পরীক্ষা করে, আরও জটিল সংমিশ্রণ (একাধিক লজিকাল অপারেটর, জটিল বোঝা ইত্যাদি) থাকে