Facebook
From Kat, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 66
  1. def exchange(index, array_list):
  2.     if 0 <= index < len(array_list):
  3.         array_list_1 = array_list[:index+1]
  4.         array_list_2 = array_list[index+1:]
  5.         array_list = array_list_2 + array_list_1
  6.         return array_list
  7.     else:
  8.         print("Invalid index")
  9.         return array_list
  10.  
  11.  
  12.  
  13. # a_list = [1, 2, 3, 4, 5]
  14. # print(exchange(2, a_list))
  15.  
  16. # max even/odd– returns the INDEX of the max even/odd element -> [1, 4, 8, 2, 3] -> max odd -> print 4
  17.  
  18. def max_even_odd(type_number, array_list):
  19.     if type_number == "even":
  20.         even_list = []
  21.         for num in array_list:
  22.             if num % 2 == 0:
  23.                 even_list.append(num)
  24.         if len(even_list) > 0:
  25.             max_num = max(even_list)
  26.             for i in range(len(array_list) - 1, -1, -1):
  27.                 if array_list[i] == max_num:
  28.                     max_index = i
  29.                     return max_index
  30.         else:
  31.             print("No matches")
  32.     elif type_number == "odd":
  33.         odd_list = []
  34.         for num in array_list:
  35.             if not num % 2 == 0:
  36.                 odd_list.append(num)
  37.         if len(odd_list) > 0:
  38.             max_num = max(odd_list)
  39.             for i in range(len(array_list) - 1, -1, -1):
  40.                 if array_list[i] == max_num:
  41.                     max_index = i
  42.                     return max_index
  43.         else:
  44.             return "No matches"
  45.  
  46.  
  47. # a_list = [5, 5, 5, 5, 5]
  48. # print(max_even_odd("even", a_list))
  49.  
  50. # min even/odd – returns the INDEX of the min even/odd element -> [1, 4, 8, 2, 3] -> min even > print 3
  51.  
  52. def min_even_odd(type_number, array_list):
  53.     if type_number == "even":
  54.         even_list = []
  55.         for num in array_list:
  56.             if num % 2 == 0:
  57.                 even_list.append(num)
  58.         if len(even_list) > 0:
  59.             min_num = min(even_list)
  60.             for i in range(len(array_list) - 1, -1, -1):
  61.                 if array_list[i] == min_num:
  62.                     min_index = i
  63.                     return min_index
  64.         else:
  65.             return "No matches"
  66.     elif type_number == "odd":
  67.         odd_list = []
  68.         for num in array_list:
  69.             if not num % 2 == 0:
  70.                 odd_list.append(num)
  71.         if len(odd_list) > 0:
  72.             min_num = min(odd_list)
  73.             for i in range(len(array_list) - 1, -1, -1):
  74.                 if array_list[i] == min_num:
  75.                     min_index = i
  76.                     return min_index
  77.         else:
  78.             return "No matches"
  79.  
  80.  
  81. # first {count} even/odd– returns the first {count} elements -> [1, 8, 2, 3] -> first 2 even -> print [8, 2]
  82.  
  83. def first_several_even_odd(count_num, type_number, array_list):
  84.     if count_num > len(array_list) or count_num <= 0:
  85.         return "Invalid count"
  86.     elif type_number == "even":
  87.         even_list = []
  88.         for i in range(len(array_list)):
  89.             if array_list[i] % 2 == 0:
  90.                 if len(even_list) == count_num:
  91.                     break
  92.                 else:
  93.                     even_list.append(array_list[i])
  94.         return even_list
  95.  
  96.     elif type_number == "odd":
  97.         odd_list = []
  98.         for i in range(len(array_list)):
  99.             if not array_list[i] % 2 == 0:
  100.                 if len(odd_list) == count_num:
  101.                     break
  102.                 else:
  103.                     odd_list.append(array_list[i])
  104.         return odd_list
  105.  
  106.  
  107. def last_several_even_odd(count_num, type_number, array_list):
  108.     if count_num > len(array_list) or count_num <= 0:
  109.         return "Invalid count"
  110.     elif type_number == "even":
  111.         even_list = []
  112.         for i in range(len(array_list) - 1, -1, -1):
  113.             if array_list[i] % 2 == 0:
  114.                 if len(even_list) == count_num:
  115.                     break
  116.                 else:
  117.                     even_list.append(array_list[i])
  118.         return even_list
  119.  
  120.     elif type_number == "odd":
  121.         odd_list = []
  122.         for i in range(len(array_list) - 1, -1, -1):
  123.             if not array_list[i] % 2 == 0:
  124.                 if len(odd_list) == count_num:
  125.                     break
  126.                 else:
  127.                     odd_list.append(array_list[i])
  128.         return odd_list
  129.  
  130.  
  131. list_nums = [int(elem) for elem in input().split()]
  132.  
  133.  
  134. while True:
  135.     command = input()
  136.     info = command.split()
  137.     if info[0] == "end":
  138.         print(list_nums)
  139.         break
  140.  
  141.     elif info[0] == "exchange":
  142.         list_nums = exchange(int(info[1]), list_nums)
  143.  
  144.     elif info[0] == "max":
  145.         print(max_even_odd(info[1], list_nums))
  146.  
  147.     elif info[0] == "min":
  148.         print(min_even_odd(info[1], list_nums))
  149.  
  150.     elif info[0] == "first":
  151.         print(first_several_even_odd(int(info[1]), info[2], list_nums))
  152.  
  153.     elif info[0] == "last":
  154.         print(last_several_even_odd(int(info[1]), info[2], list_nums))
  155.  
  156.