Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/local/bin/python3.7
- # -*- coding: utf-8 -*import
- def check_even(c: list):
- evens = []
- for i in c:
- if i % 2 == 0:
- evens.append(i)
- return evens
- def check_odd(d: list):
- odds = []
- for i in d:
- if i % 2 != 0:
- odds.append(i)
- return odds
- def duplicate_val(f: list, g: int):
- seen = set()
- res = []
- for i, j in enumerate(f):
- if j == g and j not in seen:
- seen.add(j)
- else:
- if j == g:
- res.append(i)
- return max(res)
- def array_manipulator(a: str, b: str):
- lst = [int(x) for x in a.split(' ')]
- while b != 'end':
- b = b.split(' ')
- if 'exchange' in b:
- idx = int(b[1])
- if len(lst) - 1 < idx or idx < 0:
- print('Invalid index')
- else:
- sub_lst_1 = lst[:idx + 1]
- sub_lst_2 = lst[idx + 1:]
- lst = sub_lst_2 + sub_lst_1
- elif 'max' in b:
- if 'even' in b:
- nums = check_even(lst)
- if nums:
- max_min = max(nums)
- if nums.count(max_min) < 2:
- idx = lst.index(max_min)
- print(idx)
- else:
- print(duplicate_val(lst, max_min))
- else:
- print('No matches')
- elif 'odd' in b:
- nums = check_odd(lst)
- if nums:
- max_min = max(nums)
- if nums.count(max_min) < 2:
- idx = lst.index(max_min)
- print(idx)
- else:
- print(duplicate_val(lst, max_min))
- else:
- print('No matches')
- elif 'min' in b:
- if 'even' in b:
- nums = check_even(lst)
- if nums:
- max_min = min(nums)
- if nums.count(max_min) < 2:
- idx = lst.index(max_min)
- print(idx)
- else:
- print(duplicate_val(lst, max_min))
- else:
- print('No matches')
- elif 'odd' in b:
- nums = check_odd(lst)
- if nums:
- max_min = min(nums)
- if nums.count(max_min) < 2:
- idx = lst.index(max_min)
- print(idx)
- else:
- print(duplicate_val(lst, max_min))
- else:
- print('No matches')
- elif 'first' in b:
- count = int(b[1])
- if count > len(lst):
- print('Invalid count')
- else:
- if 'even' in b:
- nums = check_even(lst)
- if not nums:
- print(f'{nums}')
- else:
- if len(nums) >= count:
- nums_found = nums[:count]
- print(nums_found)
- else:
- print(nums)
- elif 'odd' in b:
- nums = check_odd(lst)
- if not nums:
- print(f'{nums}')
- else:
- if len(nums) >= count:
- nums_found = nums[:count]
- print(nums_found)
- else:
- print(nums)
- elif 'last' in b:
- count = int(b[1])
- if count > len(lst):
- print('Invalid count')
- else:
- if 'even' in b:
- nums = check_even(lst)
- if not nums:
- print(f'{nums}')
- else:
- if len(nums) >= count:
- nums_found = nums[-count:]
- print(nums_found)
- else:
- print(nums)
- elif 'odd' in b:
- nums = check_odd(lst)
- if not nums:
- print(f'{nums}')
- else:
- if len(nums) >= count:
- nums_found = nums[-count:]
- print(nums_found)
- else:
- print(nums)
- b = input()
- else:
- print(lst)
- array_manipulator(input(), input())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement