Advertisement
simeonshopov

Feeding the animals v2.0

Jan 14th, 2020
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.52 KB | None | 0 0
  1. #!/usr/local/bin/python3.7
  2. # -*- coding: utf-8 -*import
  3.  
  4. animals = []
  5. zones = []
  6.  
  7.  
  8. def it_is(l: list, k: str):
  9.     return [x for x in l if x[0] == k]
  10.  
  11.  
  12. def idx(l: list, k: str):
  13.     return l.index(it_is(l, k)[0])
  14.  
  15.  
  16. command = input()
  17.  
  18. while command != 'Last Info':
  19.     tokens = command.split(':')
  20.     command_type = tokens[0]
  21.     animal = tokens[1]
  22.     food = int(tokens[2])
  23.     area = tokens[3]
  24.  
  25.     if command_type == 'Add':
  26.         if it_is(zones, area):
  27.             if not it_is(animals, animal):
  28.                 zones[idx(zones, area)][1] += 1
  29.         else:
  30.             zones.append([area, 1])
  31.         if it_is(animals, animal):
  32.             animals[idx(animals, animal)][1] += food
  33.         else:
  34.             animals.append([animal, food])
  35.     elif command_type == 'Feed':
  36.         if it_is(animals, animal):
  37.             animals[idx(animals, animal)][1] -= food
  38.             if animals[idx(animals, animal)][1] <= 0:
  39.                 print(f'{animal} was successfully fed')
  40.                 del animals[idx(animals, animal)]
  41.                 zones[idx(zones, area)][1] -= 1
  42.             if zones[idx(zones, area)][1] <= 0:
  43.                 del zones[idx(zones, area)]
  44.     command = input()
  45.  
  46.  
  47. sorted_animals = sorted(sorted(animals, key=lambda x: x[0]), key=lambda x: x[1], reverse=True)
  48. sorted_zones = sorted(zones, key=lambda x: x[1], reverse=True)
  49. print('Animals:')
  50. [print(f'{x[0]} -> {x[1]}g') for x in sorted_animals]
  51. print('Areas with hungry animals:')
  52. [print(f'{x[0]} : {x[1]}') for x in sorted_zones]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement