✍️ گروهبندی یعنی چند رکورد با یک کلید مشترک را در یک خلاصه جمع کنیم. این بار فقط تعداد رخداد هر روز را میخواهیم، نه تعداد کالا یا مبلغ. اگر یک روز سه بار در ورودی باشد، شمارنده آن سه میشود؛ دو تاریخ یکسان قرار نیست به عنوان «داده تکراری نامعتبر» حذف شوند.
مثلاً تاریخهای اول نوامبر 2026-11-01، دوم نوامبر و دوباره اول نوامبر، گروههایی با تعداد دو و یک میسازند. قبل از افزودن به شمارنده، تاریخ باید روز واقعی و شکل دقیق ISO داشته باشد. تاریخ خراب به هیچ گروهی تعلق نمیگیرد.
تابع مستقل بنویس و برای هر تاریخ معتبر از دیکشنری شمارش استفاده کن. ترتیب کلیدهای دیکشنری مهم نیست؛ هر تاریخ معتبر باید تعداد درست خود را داشته باشد. خطای رایج، استفاده از set است که تعداد رخدادها را از بین میبرد، یا شمارش تاریخ ناممکن فقط به دلیل داشتن خط تیره. ورودی خالی دیکشنری خالی میدهد. نیازی به ساعت سیستم یا کتابخانه بیرونی نیست؛ همه دادهها در آرگومان آمدهاند.
تابع آماده course_check از ورودی کپی عمیق میگیرد، تابع اصلی را اجرا میکند و تغییر ورودی را رد میکند؛ آن را نگه دار و فقط تابع اصلی را کامل کن.
فعالیت شما
تابع count_by_day(values) فهرست رشتههای تاریخ میگیرد؛ فقط تاریخ واقعی و دقیق YYYY-MM-DD را بشمارد و دیکشنری {تاریخ:تعداد رخداد} برگرداند. نامعتبرها و فاصلهدارها نادیده گرفته شوند؛ تکرار معتبر باید شمرده شود. خالی {}؛ count_by_day(['2026-11-01','2026-11-01'])={'2026-11-01':2}. ورودی تغییر نکند. course_check آماده را نگه دار؛ این تابع تغییر ورودی را رد و همان خروجی اصلی را برمیگرداند.