یک تابع بنویسید که حاصلضرب نقطهای (dot product) دو لیست از اعداد را با استفاده از ابزارهای برنامهنویسی تابعی مانند map، functools.reduce و operator.mul محاسبه کند.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:08 0.0
برای حل این سوال از ماژول operator برای استفاده از operator.mul و از map برای ضرب زوجبهزوج عناصر دو لیست استفاده کنید، سپس با functools.reduce یا تابع sum مقادیر حاصل را جمع کنید؛ قبل از محاسبه طول لیستها را بررسی کنید تا همطول باشند و در صورت نیاز عناصر را به float تبدیل کنید. این روش مناسب برای تحلیل عددی و اتوماسیون پردازش برداری است و مفاهیم پایهای برنامهنویسی تابعی را (بدون حلقه صریح) نشان میدهد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
ایده استفاده از map، operator.mul و reduce برای محاسبه dot product عالی است، ولی همطولی دو لیست را باید به صراحت بررسی کرد (یا استثنا صادر کرد). تبدیل عناصر به float پیش از ضرب میتواند از اشتباههای مربوط به انواع داده جلوگیری کند و نتیجه را دقیقتر میکند. اجرای زوجهای همآهنگ با zip به خوانایی کد کمک میکند و میتواند خطوط را کوتاهتر کند؛ سپس نتیجه با sum یا functools.reduce جمع میشود. در نهایت، برای کاربردهای عددی بزرگ، استفاده از numpy یا scipy میتواند کارایی و دقت را بهبود بخشد.
گزارش