یک برنامه پایتون بنویس که با استفاده از تابع builtin zip دو لیست عددی همطول را جفتسازی کند، حاصلضرب هر جفت را محاسبه کند و جمع این حاصلضربها (dot product) را برگرداند.
18.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 04:34 0.0
برای حل این مسئله کافی است از zip برای پیمایش همزمان دو لیست استفاده کنید و با یک comprehension یا حلقه ساده حاصلضرب هر زوج را محاسبه و با تابع sum جمع بزنید (مثال: sum(a*b for a,b in zip(list1,list2))). توجه داشته باشید که zip تا طول کوتاهترین لیست را میگیرد؛ اگر لازم است لیستها طولهای متفاوت داشته باشند از itertools.zip_longest استفاده کنید یا ابتدا طولها را بررسی کنید. برای محاسبات عددی بزرگ یا سرعت بالا میتوانید از numpy.dot استفاده کنید؛ برای اسکریپتنویسی ورودی را از کاربر یا فایل بخوانید و خروجی را چاپ یا در فایل ذخیره کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای محاسبهٔ dot product با zip کافی است زوجها را همزمان پیمایش و حاصلضربها را جمع کنید؛ استفاده از یک generator expression مثل sum(a*b for a,b in zip(...)) حافظهنگهدار و سریع است چون لیست میانی نمیسازد. دقت کنید zip تا طول کوتاهترین لیست را میگیرد، پس اگر باید طولها برابر باشند ابتدا چک کنید یا از itertools.zip_longest با مقدار پیشفرض مناسب استفاده کنید. برای بردارهای بزرگ یا محاسبات عددی با کارایی بالا از numpy.dot بهره ببرید.
گزارش