bl00dt3ars

10. List Manipulator

Jun 23rd, 2021
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.42 KB | None | 0 0
  1. def exchange(numbers, index):
  2.     return numbers[index + 1:] + numbers[:index + 1]
  3.  
  4.  
  5. def max_even(numbers):
  6.     even_numbers = [num for num in numbers if num % 2 == 0]
  7.     if len(even_numbers) > 0:
  8.         max_even_num = max(even_numbers)
  9.         for i in range(len(numbers) - 1, -1, -1):
  10.             if numbers[i] == max_even_num:
  11.                 return i
  12.     else:
  13.         return "No matches"
  14.  
  15.  
  16. def max_odd(numbers):
  17.     odd_numbers = [num for num in numbers if num % 2 != 0]
  18.     if len(odd_numbers) > 0:
  19.         max_odd_num = max(odd_numbers)
  20.         for i in range(len(numbers) - 1, -1, -1):
  21.             if numbers[i] == max_odd_num:
  22.                 return i
  23.     else:
  24.         return "No matches"
  25.  
  26.  
  27. def min_even(numbers):
  28.     even_numbers = [num for num in numbers if num % 2 == 0]
  29.     if len(even_numbers) > 0:
  30.         min_even_num = min(even_numbers)
  31.         for i in range(len(numbers) - 1, -1, -1):
  32.             if numbers[i] == min_even_num:
  33.                 return i
  34.     else:
  35.         return "No matches"
  36.  
  37.  
  38. def min_odd(numbers):
  39.     odd_numbers = [num for num in numbers if num % 2 != 0]
  40.     if len(odd_numbers) > 0:
  41.         min_odd_num = min(odd_numbers)
  42.         for i in range(len(numbers) - 1, -1, -1):
  43.             if numbers[i] == min_odd_num:
  44.                 return i
  45.     else:
  46.         return "No matches"
  47.  
  48.  
  49. def first_even(numbers, get_numbers):
  50.     even_numbers = [num for num in numbers if num % 2 == 0]
  51.     return even_numbers[:get_numbers]
  52.  
  53.  
  54. def first_odd(numbers, get_numbers):
  55.     odd_numbers = [num for num in numbers if num % 2 != 0]
  56.     return odd_numbers[:get_numbers]
  57.  
  58.  
  59. def last_even(numbers, get_numbers):
  60.     even_numbers = [num for num in numbers if num % 2 == 0]
  61.     return even_numbers[-get_numbers:]
  62.  
  63.  
  64. def last_odd(numbers, get_numbers):
  65.     odd_numbers = [num for num in numbers if num % 2 != 0]
  66.     return odd_numbers[-get_numbers:]
  67.  
  68.  
  69. numbers = [int(num) for num in input().split()]
  70. command = input()
  71.  
  72. while command != "end":
  73.     get_function = command.split()
  74.     if get_function[0] == "exchange":
  75.         index = int(get_function[1])
  76.         if index not in range(len(numbers)):
  77.             print("Invalid index")
  78.         else:
  79.             numbers = exchange(numbers, index)
  80.     elif get_function[0] == "max":
  81.         type = get_function[1]
  82.         if type == "even":
  83.             print(max_even(numbers))
  84.         elif type == "odd":
  85.             print(max_odd(numbers))
  86.     elif get_function[0] == "min":
  87.         type = get_function[1]
  88.         if type == "even":
  89.             print(min_even(numbers))
  90.         elif type == "odd":
  91.             print(min_odd(numbers))
  92.     elif get_function[0] == "first":
  93.         get_numbers = int(get_function[1])
  94.         if get_numbers > len(numbers):
  95.             print("Invalid count")
  96.         else:
  97.             type = get_function[2]
  98.             if type == "even":
  99.                 print(first_even(numbers, get_numbers))
  100.             elif type == "odd":
  101.                 print(first_odd(numbers, get_numbers))
  102.     elif get_function[0] == "last":
  103.         get_numbers = int(get_function[1])
  104.         if get_numbers > len(numbers):
  105.             print("Invalid count")
  106.         else:
  107.             type = get_function[2]
  108.             if type == "even":
  109.                 print(last_even(numbers, get_numbers))
  110.             elif type == "odd":
  111.                 print(last_odd(numbers, get_numbers))
  112.     command = input()
  113.  
  114. print(numbers)
Advertisement
Add Comment
Please, Sign In to add comment