Advertisement
bl00dt3ars

10. List Manipulator (edited)

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