Advertisement
GeorgiLukanov87

list_manipulator_100/100

Jun 22nd, 2022
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.10 KB | None | 0 0
  1. def is_index_valid(some_index, some_list):
  2.     if 0 <= some_index < len(some_list):
  3.         return True
  4.     print('Invalid index')
  5.  
  6.  
  7. def is_count_valid(some_count, some_list):
  8.     if 0 < some_count <= len(some_list):
  9.         return True
  10.     print('Invalid count')
  11.  
  12.  
  13. data = list(map(int, input().split(' ')))
  14. command = input()
  15. while not command == 'end':
  16.     command = command.split()
  17.     if command[0] == 'exchange':
  18.         index = int(command[1])
  19.         if is_index_valid(index, data):
  20.             left_side = data[:index + 1]
  21.             right_side = data[index + 1:]
  22.             data.clear()
  23.             data = right_side + left_side
  24.  
  25.     elif command[0] == 'max':
  26.         if command[1] == 'even':
  27.             biggest_num = []
  28.             for index in range(len(data)):
  29.                 if data[index] % 2 == 0:
  30.                     biggest_num.append(data[index])
  31.             if len(biggest_num) == 0:
  32.                 print('No matches')
  33.             else:
  34.                 biggest_num = max(biggest_num)
  35.                 searched_index = 0
  36.                 for rightmost in range(len(data) - 1, -1, -1):
  37.                     if data[rightmost] == biggest_num:
  38.                         print(rightmost)
  39.                         break
  40.  
  41.         elif command[1] == 'odd':
  42.             biggest_num = []
  43.             for index in range(len(data)):
  44.                 if data[index] % 2 != 0:
  45.                     biggest_num.append(data[index])
  46.             if len(biggest_num) == 0:
  47.                 print('No matches')
  48.             else:
  49.                 biggest_num = max(biggest_num)
  50.                 searched_index = 0
  51.                 for rightmost in range(len(data) - 1, -1, -1):
  52.                     if data[rightmost] == biggest_num:
  53.                         print(rightmost)
  54.                         break
  55.  
  56.     elif command[0] == 'min':
  57.         if command[1] == 'even':
  58.             min_num = []
  59.             for index in range(len(data)):
  60.                 if data[index] % 2 == 0:
  61.                     min_num.append(data[index])
  62.             if len(min_num) == 0:
  63.                 print('No matches')
  64.             else:
  65.                 min_num = min(min_num)
  66.                 searched_index = 0
  67.                 for rightmost in range(len(data) - 1, -1, -1):
  68.                     if data[rightmost] == min_num:
  69.                         print(rightmost)
  70.                         break
  71.  
  72.         elif command[1] == 'odd':
  73.             min_num = []
  74.             for index in range(len(data)):
  75.                 if data[index] % 2 != 0:
  76.                     min_num.append(data[index])
  77.             if len(min_num) == 0:
  78.                 print('No matches')
  79.             else:
  80.                 min_num = min(min_num)
  81.                 searched_index = 0
  82.                 for rightmost in range(len(data) - 1, -1, -1):
  83.                     if data[rightmost] == min_num:
  84.                         print(rightmost)
  85.                         break
  86.  
  87.     elif command[0] == 'first':
  88.         count = int(command[1])
  89.         searched_nums = []
  90.         if command[2] == 'even' and is_count_valid(count, data):
  91.             for num in data:
  92.                 if num % 2 == 0:
  93.                     searched_nums.append(num)
  94.             print(searched_nums[:count])
  95.  
  96.         elif command[2] == 'odd' and is_count_valid(count, data):
  97.             for num in data:
  98.                 if num % 2 != 0:
  99.                     searched_nums.append(num)
  100.             print(searched_nums[:count])
  101.  
  102.     elif command[0] == 'last':
  103.         count = int(command[1])
  104.         searched_nums = []
  105.         if command[2] == 'even' and is_count_valid(count, data):
  106.             for num in data:
  107.                 if num % 2 == 0:
  108.                     searched_nums.append(num)
  109.             print(searched_nums[:count])
  110.  
  111.         elif command[2] == 'odd' and is_count_valid(count, data):
  112.             for num in data:
  113.                 if num % 2 != 0:
  114.                     searched_nums.append(num)
  115.             searched_nums = searched_nums[::-1]
  116.             searched_nums = searched_nums[:count]
  117.             print(searched_nums[::-1])
  118.  
  119.     command = input()
  120.  
  121. print(data)
  122.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement