Advertisement
Guest User

Untitled

a guest
Mar 28th, 2023
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.85 KB | None | 0 0
  1. from sys import maxsize
  2.  
  3.  
  4. def exchange(the_list, index):
  5.     """### EXCHANGE ###
  6.    splits the list after the given index and exchanges the places of the two resulting sub-lists.
  7.     1 - If the index is outside the boundaries of the list, print "Invalid index"
  8.     2 - A negative index is considered invalid
  9.     """
  10.  
  11.     left_list = the_list[:index + 1:]
  12.     right_list = the_list[index + 1::]
  13.     the_list.clear()
  14.     the_list.extend(right_list)
  15.     the_list.extend(left_list)
  16.     return the_list
  17.  
  18.  
  19. def max_even_odd(the_list, even_or_odd):
  20.     """ ### MAX EVEN/ODD element ###
  21.    returns the INDEX of the max even/odd element """
  22.  
  23.     max_num = -maxsize
  24.     the_index = 0
  25.  
  26.     for index, number in enumerate(the_list):
  27.         if number % 2 == 0 and number >= max_num and even_or_odd == "even":
  28.             max_num = number
  29.             the_index = index
  30.         elif even_or_odd == "odd" and number % 2 != 0 and number >= max_num:
  31.             max_num = number
  32.             the_index = index
  33.  
  34.     if max_num == -maxsize:
  35.         return print("No matches")
  36.  
  37.     return print(the_index)
  38.  
  39.  
  40. def min_even_odd(the_list, even_or_odd):
  41.     """ ### MIN EVEN/ODD element ###
  42.    returns the INDEX of the min even/odd element"""
  43.  
  44.     min_num = maxsize
  45.     the_index = 0
  46.     for index, number in enumerate(the_list):
  47.         if even_or_odd == "even" and number <= min_num and number % 2 == 0:
  48.             min_num = number
  49.             the_index = index
  50.         elif even_or_odd == "odd" and number <= min_num and number % 2 != 0:
  51.             min_num = number
  52.             the_index = index
  53.  
  54.     if min_num == maxsize:
  55.         return print("No matches")
  56.     else:
  57.         return print(the_index)
  58.  
  59.  
  60. def first_count_even_odd(the_list, count, even_or_odd):
  61.     """ ### FIRST COUNT EVEN OR ODD ###
  62.    returns the first count even/odd elements. """
  63.  
  64.     result = []
  65.     for number in the_list:
  66.         if number % 2 == 0 and even_or_odd == "even":
  67.             result.append(number)
  68.  
  69.         elif number % 2 != 0 and even_or_odd == "odd":
  70.             result.append(number)
  71.  
  72.     if count >= len(result):
  73.         return result
  74.     else:
  75.         return result[:count:]
  76.  
  77.  
  78. def last_count_even_odd(the_list, count, even_or_odd):
  79.     """ ### LAST COUNT EVEN OR ODD ###
  80.    returns the last count even/odd elements. """
  81.  
  82.     result = []
  83.  
  84.     for number in range(len(the_list) - 1, - 1, -1):
  85.         if the_list[number] % 2 == 0 and even_or_odd == "even":
  86.             result.append(the_list[number])
  87.         elif the_list[number] % 2 != 0 and even_or_odd == "odd":
  88.             result.append(the_list[number])
  89.  
  90.     if count >= len(result):
  91.         return result
  92.     else:
  93.         return result[len(the_list) - count::]
  94.  
  95.  
  96. numbers = list(map(int, input().split()))
  97. command = input().split()
  98.  
  99. while command[0] != "end":
  100.     current_command = command[0]
  101.     index_or_command = command[1]
  102.     if current_command == "exchange":
  103.         if 0 <= int(index_or_command) < len(numbers):
  104.             exchange(numbers, int(index_or_command))
  105.         else:
  106.             print('Invalid index')
  107.  
  108.     elif current_command == "max":
  109.         max_even_odd(numbers, index_or_command)
  110.  
  111.     elif current_command == "min":
  112.         min_even_odd(numbers, index_or_command)
  113.  
  114.     elif current_command == "first":
  115.         even_odd = command[2]
  116.         if int(index_or_command) > len(numbers) or int(index_or_command) < 0:
  117.             print("Invalid count")
  118.         else:
  119.             print(first_count_even_odd(numbers, int(index_or_command), even_odd))
  120.  
  121.     elif current_command == "last":
  122.         even_odd = command[2]
  123.         if int(index_or_command) > len(numbers) or int(index_or_command) < 0:
  124.             print("Invalid count")
  125.         else:
  126.             print(last_count_even_odd(numbers, int(index_or_command), even_odd))
  127.  
  128.     command = input().split()
  129.  
  130. print(numbers)
  131.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement