اذهب إلى المحتوى

السؤال

نشر (معدل)

سلام عليكم 

من يستطيع شرح هذا الكود لو تكرمتم 

ما الغرض من استعمال 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

 

تم التعديل في بواسطة Mohammed Ahmed13
تنسيق الكود المرفق

Recommended Posts

  • 0
نشر

وعليكم السلام أهلا بك،

تم تعريف 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)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...