Как повернуть только часть списка, python
Подскажите, пожалуйста, как повернуть только часть списка? Имеется ли какой-то быстрый способ?
list[::-1] поворачивает весь список.
Мне нужно что бы из [1, 2, 3, 4, 5, 6] , получилось [4, 3, 2, 1, 5, 6]
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Просто переворачиваете нужную часть, которую берёте срезом, а остальное тоже берёте срезом и присоединяете:
lst = lst[3::-1]+lst[4:]
Либо если список большой и переворачивать нужно только небольшой его кусок прямо "по месту", то срезом же присваиваете перевёрнутую часть обратно:
lst[:4] = lst[3::-1]
Нумерация в срезах в случае step=-1 у списков какая-то заумная, обратная, не слишком интуитивная.
Автор решения: Nekto
→ Ссылка
arr = [1, 2, 3, 4, 5, 6]
arr[0], arr[3] = arr[3], arr[0]
arr[1], arr[2] = arr[2], arr[1]