Ghytro

subjects.py

Feb 18th, 2021
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.27 KB | None | 0 0
  1. def correct_day_list(day_list: list, week_num: int) -> list:
  2.     l = []
  3.     for subject in day_list:
  4.         if subject["name"][0].isdigit(): #значит есть номера недель
  5.             subj_names_weeks = subject["name"].split("\n")
  6.             for index, subj_name_week in enumerate(subj_names_weeks): #может быть несколько предметов
  7.                 if week_num in [int(week) for week in subj_name_week.split(" н. ")[0].split(",")]:
  8.                     l.append(
  9.                         {
  10.                             "name": subj_name_week.split(" н. ")[1],
  11.                             "type": subject["type"].split("\n")[index],
  12.                             "classroom": subject["classroom"].split("\n")[index]
  13.                         }
  14.                     )
  15.                     break
  16.             else: #если нет ни одного предмета с нужным номером недели, то добавляем нулевой предмет
  17.                 l.append(
  18.                     {
  19.                         "name": "None",
  20.                         "type": "None",
  21.                         "classroom": "None"
  22.                     }
  23.                 )
  24.         else: #нет номеров недели, просто название
  25.             l.append(subject)
  26.     return l
  27.  
  28. if __name__ == "__main__":
  29.     #пример со средой
  30.     day_list = [
  31.         {
  32.             "name": "None",
  33.             "type": "None",
  34.             "classroom": "None"
  35.         },
  36.         {
  37.             "name": "None",
  38.             "type": "None",
  39.             "classroom": "None"
  40.         },
  41.         {
  42.             "name": "2,6,10,14 н. Физика",
  43.             "type": "ЛАБ",
  44.             "classroom": "В-331"
  45.         },
  46.         {
  47.             "name": "2,6,10,14 н. Физика\n4,8,12,16 н. Правоведение",
  48.             "type": "ЛАБ\nПР",
  49.             "classroom": "В-331\nА-206"
  50.         },
  51.         {
  52.             "name": "Линал",
  53.             "type": "ПР",
  54.             "classroom": "A-405"
  55.         },
  56.         {
  57.             "name": "Матан",
  58.             "type": "ПР",
  59.             "classroom": "A-405"
  60.         }
  61.     ]
  62.     day_list = correct_day_list(day_list, 6)
  63.     print(day_list)
Advertisement
Add Comment
Please, Sign In to add comment