Python переупорядочивает отсортированный список так, чтобы наибольшее значение было в середине

Мне нужно переупорядочить отсортированный список так, чтобы «средний» элемент был самым большим номером. Числа, ведущие к середине, возрастают, числа после середины идут в порядке убывания.

У меня есть следующее рабочее решение, но есть ощущение, что его можно сделать проще:

foo = range(7)
bar = [n for i, n in enumerate(foo) if n % 2 == len(foo) % 2]
bar += [n for n in reversed(foo) if n not in bar]
bar
[1, 3, 5, 6, 4, 2, 0]
5
задан jaap3 21 December 2012 в 09:30
поделиться