Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import maxsize
- def exchange(the_list, index):
- """### EXCHANGE ###
- splits the list after the given index and exchanges the places of the two resulting sub-lists.
- 1 - If the index is outside the boundaries of the list, print "Invalid index"
- 2 - A negative index is considered invalid
- """
- left_list = the_list[:index + 1:]
- right_list = the_list[index + 1::]
- the_list.clear()
- the_list.extend(right_list)
- the_list.extend(left_list)
- return the_list
- def max_even_odd(the_list, even_or_odd):
- """ ### MAX EVEN/ODD element ###
- returns the INDEX of the max even/odd element """
- max_num = -maxsize
- the_index = 0
- for index, number in enumerate(the_list):
- if number % 2 == 0 and number >= max_num and even_or_odd == "even":
- max_num = number
- the_index = index
- elif even_or_odd == "odd" and number % 2 != 0 and number >= max_num:
- max_num = number
- the_index = index
- if max_num == -maxsize:
- return print("No matches")
- return print(the_index)
- def min_even_odd(the_list, even_or_odd):
- """ ### MIN EVEN/ODD element ###
- returns the INDEX of the min even/odd element"""
- min_num = maxsize
- the_index = 0
- for index, number in enumerate(the_list):
- if even_or_odd == "even" and number <= min_num and number % 2 == 0:
- min_num = number
- the_index = index
- elif even_or_odd == "odd" and number <= min_num and number % 2 != 0:
- min_num = number
- the_index = index
- if min_num == maxsize:
- return print("No matches")
- else:
- return print(the_index)
- def first_count_even_odd(the_list, count, even_or_odd):
- """ ### FIRST COUNT EVEN OR ODD ###
- returns the first count even/odd elements. """
- result = []
- for number in the_list:
- if number % 2 == 0 and even_or_odd == "even":
- result.append(number)
- elif number % 2 != 0 and even_or_odd == "odd":
- result.append(number)
- if count >= len(result):
- return result
- else:
- return result[:count:]
- def last_count_even_odd(the_list, count, even_or_odd):
- """ ### LAST COUNT EVEN OR ODD ###
- returns the last count even/odd elements. """
- result = []
- for number in range(len(the_list) - 1, - 1, -1):
- if the_list[number] % 2 == 0 and even_or_odd == "even":
- result.append(the_list[number])
- elif the_list[number] % 2 != 0 and even_or_odd == "odd":
- result.append(the_list[number])
- if count >= len(result):
- return result
- else:
- return result[len(the_list) - count::]
- numbers = list(map(int, input().split()))
- command = input().split()
- while command[0] != "end":
- current_command = command[0]
- index_or_command = command[1]
- if current_command == "exchange":
- if 0 <= int(index_or_command) < len(numbers):
- exchange(numbers, int(index_or_command))
- else:
- print('Invalid index')
- elif current_command == "max":
- max_even_odd(numbers, index_or_command)
- elif current_command == "min":
- min_even_odd(numbers, index_or_command)
- elif current_command == "first":
- even_odd = command[2]
- if int(index_or_command) > len(numbers) or int(index_or_command) < 0:
- print("Invalid count")
- else:
- print(first_count_even_odd(numbers, int(index_or_command), even_odd))
- elif current_command == "last":
- even_odd = command[2]
- if int(index_or_command) > len(numbers) or int(index_or_command) < 0:
- print("Invalid count")
- else:
- print(last_count_even_odd(numbers, int(index_or_command), even_odd))
- command = input().split()
- print(numbers)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement