bl00dt3ars

10. List Manipulator

Jun 2nd, 2021 (edited)
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.75 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.         max_even_index = None
  12.         for i in range(len(numbers)):
  13.             if numbers[i] == max_even_num:
  14.                 max_even_index = i
  15.         return max_even_index
  16.     else:
  17.         return "No matches"
  18.    
  19.  
  20. def max_odd(numbers):
  21.     odd_numbers = [num for num in numbers if num % 2 != 0]
  22.     if len(odd_numbers) > 0:
  23.         max_odd_num = max(odd_numbers)
  24.         max_odd_index = None
  25.         for i in range(len(numbers)):
  26.             if numbers[i] == max_odd_num:
  27.                 max_odd_index = i
  28.         return max_odd_index
  29.     else:
  30.         return "No matches"
  31.  
  32.  
  33. def min_even(numbers):
  34.     even_numbers = [num for num in numbers if num % 2 == 0]
  35.     if len(even_numbers) > 0:
  36.         min_even_num = min(even_numbers)
  37.         min_even_index = None
  38.         for i in range(len(numbers)):
  39.             if numbers[i] == min_even_num:
  40.                 min_even_index = i
  41.         return min_even_index
  42.     else:
  43.         return "No matches"
  44.  
  45.  
  46. def min_odd(numbers):
  47.     odd_numbers = [num for num in numbers if num % 2 != 0]
  48.     if len(odd_numbers) > 0:
  49.         min_odd_num = min(odd_numbers)
  50.         min_odd_index = None
  51.         for i in range(len(numbers)):
  52.             if numbers[i] == min_odd_num:
  53.                 min_odd_index = i
  54.         return min_odd_index
  55.     else:
  56.         return "No matches"
  57.  
  58.  
  59. def first_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 first_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. def last_even(numbers, get_numbers):
  70.     even_numbers = [num for num in numbers if num % 2 == 0]
  71.     return list(reversed(even_numbers[-get_numbers:]))
  72.  
  73.  
  74. def last_odd(numbers, get_numbers):
  75.     odd_numbers = [num for num in numbers if num % 2 != 0]
  76.     return list(reversed(odd_numbers[-get_numbers:]))
  77.  
  78.  
  79. numbers = [int(num) for num in input().split()]
  80. command = input()
  81.  
  82. while command != "end":
  83.     get_function = command.split()
  84.     if get_function[0] == "exchange":
  85.         index = int(get_function[1])
  86.         if index not in range(len(numbers)):
  87.             print("Invalid index")
  88.         else:
  89.             numbers = exchange(numbers, index)
  90.     elif get_function[0] == "max":
  91.         type = get_function[1]
  92.         if type == "even":
  93.             print(max_even(numbers))
  94.         elif type == "odd":
  95.             print(max_odd(numbers))
  96.     elif get_function[0] == "min":
  97.         type = get_function[1]
  98.         if type == "even":
  99.             print(min_even(numbers))
  100.         elif type == "odd":
  101.             print(min_odd(numbers))
  102.     elif get_function[0] == "first":
  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(first_even(numbers, get_numbers))
  110.             elif type == "odd":
  111.                 print(first_odd(numbers, get_numbers))
  112.     elif get_function[0] == "last":
  113.         get_numbers = int(get_function[1])
  114.         if get_numbers > len(numbers):
  115.             print("Invalid count")
  116.         else:
  117.             type = get_function[2]
  118.             if type == "even":
  119.                 print(last_even(numbers, get_numbers))
  120.             elif type == "odd":
  121.                 print(last_odd(numbers, get_numbers))
  122.     command = input()
  123. else:
  124.     print(numbers)
Add Comment
Please, Sign In to add comment