Существует ли альтернатива методу join?
join хочет массив строк. ' '.join([str(a) for a in your_int_array])
Решение #1 (для различных типов последовательностей):from itertools import chain, zip_longest

def mix(sequence, fltr=lambda e: e is not None):
    return filter(fltr, chain(*zip_longest(sequence[1::2], sequence[0::2], fillvalue=None)))

print(''.join(mix('12345678')))  # => '21436587'
print(''.join(map(str, mix([1, 2, 3, 4, 5, 6, 7, 8, 9]))))  # => '214365879'
print(list(mix([1, 2, 3, 4, 5, 6, 7, 8, 9])))  # => [2, 1, 4, 3, 6, 5, 8, 7, 9]
Решение #2:from operator import itemgetter

def swap(sequence, keyfunc=itemgetter(1)):
    min_value_index, min_value = min(enumerate(sequence), key=keyfunc)
    max_value_index, max_value = max(enumerate(sequence), key=keyfunc)
    sequence[min_value_index], sequence[max_value_index] = max_value, min_value
    return sequence

print(swap([3, 4, 0, 7, 1, 9, 8, 6, 2, 5]))  # => [3, 4, 9, 7, 1, 0, 8, 6, 2, 5]
Решение #3: повторяется первая задача.