viligen

plant_discovery_2

Dec 3rd, 2021
673
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. def is_valid_plant(plants_dict, plant_name):
  2.     if plant_name in plants_dict:
  3.         return True
  4.     return print("error")
  5.  
  6.  
  7. n = int(input())
  8. plants = {}
  9. for _ in range(n):
  10.     plant, rarity = input().split("<->")
  11.     rating = []
  12.     plants[plant] = {"rarity": int(rarity), "rating": rating}
  13.  
  14. while True:
  15.     data = input().split()
  16.     if "Exhibition" in data[0]:
  17.         break
  18.     plant = data[1]
  19.     if "Rate" in data[0]:
  20.         rating = int(data[-1])
  21.         if is_valid_plant(plants, plant):
  22.             plants[plant]["rating"].append(rating)
  23.     elif "Update" in data[0]:
  24.         new_rarity = int(data[-1])
  25.         if is_valid_plant(plants, plant):
  26.             plants[plant]["rarity"] = new_rarity
  27.     elif "Reset" in data[0]:
  28.         if is_valid_plant(plants, plant):
  29.             plants[plant]["rating"] = []
  30.  
  31. for plant_, data_ in plants.items():
  32.     if data_["rating"]:
  33.         data_['rating'] = sum(data_["rating"])/len(data_['rating'])
  34.     else:
  35.         data_['rating'] = 0
  36.  
  37. sorted_plants = sorted(plants.items(), key=lambda kvp: (-kvp[1]["rarity"], -kvp[1]["rating"]))
  38. print("Plants for the exhibition:")
  39. for plant_, data_ in sorted_plants:
  40.     print(f"- {plant_}; Rarity: {data_['rarity']}; Rating: {data_['rating']:.2f}")
  41.  
RAW Paste Data