Sami Remili نشر 23 أغسطس 2020 أرسل تقرير نشر 23 أغسطس 2020 (معدل) سلام عليكم من يستطيع شرح هذا الكود لو تكرمتم ما الغرض من استعمال dict فارغ def get_event_date(event): return event.date def current_users(events): events.sort(key = get-event-date) machines = {} for event in events: if event.machine not in machines: machines [event.machine] = set() if event.type == "login": machines [event.machine).add(event.user) elif event.type == "logout": machines[event.machine].remove(event.user) return machines def generate_report(machines): for machine, users in machines.items(): if len(users) > 0: user_list = " ,".join(users) print("{} ; {}".format(machine, user_list)) class Event: def __init__(self, event_date, event_type, machine_name, user): self.date = event_date self.type = event_type self.machine = machine_name self.user = user تم التعديل في 23 أغسطس 2020 بواسطة Mohammed Ahmed13 تنسيق الكود المرفق 1 اقتباس
0 Mohammed Ahmed13 نشر 23 أغسطس 2020 أرسل تقرير نشر 23 أغسطس 2020 وعليكم السلام أهلا بك، تم تعريف Dictionary فارغ بالاسم machines في البداية داخل الدالة current_users لتخزين قيم غير محددة الحجم بعد بحيث يتم إضافتها بشكل ديناميكي. يتم تحديد الـ Keys داخل الـ Dictionary عن طريق أسماء الـ machines الخاصة بكل Event أما قيمها فهي عبارة عن مجموعة (set) بأسماء المستخدمين. إذا كانت الـ machine غير متواجدة داخل الـ Dictionary الخاص ب machines فيتم تهيئتها كمجموعة من خلال السطر: machines[event.machine] = set() بعدها يتم تفقد نوع الـ Event إذا كان الغرض منها تسجيل دخول مستخدم ما، وعندها يتم إضافة المستخدم إلى المجموعة الخاصة بالـ machine أو حذفه من المجموعة عند تسجيل الخروج من خلال السطور التالية: # إضافة المستخدم للمجموعة عند تسجيل الدخول if event.type == "login": machines[event.machine].add(event.user) # حذف المستخدم من المجموعة عن تسجيل الخروج elif event.type == "logout": machines[event.machine].remove(event.user) 1 اقتباس
السؤال
Sami Remili
سلام عليكم
من يستطيع شرح هذا الكود لو تكرمتم
ما الغرض من استعمال dict فارغ
تنسيق الكود المرفق
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.