Advertisement
Onesible

List Manipulator

Oct 8th, 2023 (edited)
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.21 KB | None | 0 0
  1. data = [int(x) for x in input().split()]
  2. input_line = input()
  3. left, right = 0, 0
  4.  
  5. while input_line != 'end':
  6.     command = input_line.split()
  7.     even_numbers = [x for x in data if x % 2 == 0]
  8.     odd_numbers = [x for x in data if x % 2 != 0]
  9.  
  10.     if 'exchange' in command:
  11.         if len(data) > int(command[1]) >= 0:
  12.             left, right = data[:int(command[1]) + 1], data[int(command[1]) + 1:]
  13.             data = right + left
  14.         else:
  15.             print('Invalid index')
  16.  
  17.     elif 'max' in command:
  18.         if 'odd' in command and odd_numbers:
  19.             max_odd = max(odd_numbers)
  20.             max_odd_i = len(data) - data[::-1].index(max_odd) - 1
  21.             print(max_odd_i)
  22.         elif 'even' in command and even_numbers:
  23.             max_even = max(even_numbers)
  24.             max_even_i = len(data) - data[::-1].index(max_even) - 1
  25.             print(max_even_i)
  26.         else:
  27.             print('No matches')
  28.  
  29.     elif 'min' in command:
  30.         if 'odd' in command and odd_numbers:
  31.             min_odd = min(odd_numbers)
  32.             min_odd_i = len(data) - data[::-1].index(min_odd) - 1
  33.             print(min_odd_i)
  34.         elif 'even' in command and even_numbers:
  35.             min_even = min(even_numbers)
  36.             min_even_i = len(data) - data[::-1].index(min_even) - 1
  37.             print(min_even_i)
  38.         else:
  39.             print('No matches')
  40.  
  41.     elif 'first' in command:
  42.         if int(command[1]) <= len(data):
  43.             if 'odd' in command:
  44.                 first_count_odd = odd_numbers[:int(command[1])]
  45.                 print(first_count_odd)
  46.             elif 'even' in command:
  47.                 first_count_even = even_numbers[:int(command[1])]
  48.                 print(first_count_even)
  49.         else:
  50.             print('Invalid count')
  51.  
  52.     elif 'last' in command:
  53.         if int(command[1]) <= len(data):
  54.             if 'odd' in command:
  55.                 last_count_odd = odd_numbers[-int(command[1]):]
  56.                 print(last_count_odd)
  57.             elif 'even' in command:
  58.                 last_count_even = even_numbers[-int(command[1]):]
  59.                 print(last_count_even)
  60.         else:
  61.             print('Invalid number')
  62.     input_line = input()
  63.  
  64. print(data)
  65.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement