Проблема заключается в том, что нарезка списка не применяется на месте.По сути, создается список новый , который назначается переменной arr
в области leftRotate
, т. Е. К нему можно получить доступ только в вашей функции.Метод, который работает вместо , будет работать должным образом:
def rev_sort(arr, k, n):
arr.sort(reverse=True)
print(arr)
arr = [1, 2, 3, 4, 5, 6, 7]
rev_sort(arr, 2, 7)
print(arr)
[7, 6, 5, 4, 3, 2, 1]
[7, 6, 5, 4, 3, 2, 1]
В вашем примере ваша функция может вернуть список и присвоить ему arr
:
def leftRotate(arr, k, n):
arr = arr[k:]+arr[:k]
print(arr)
return arr
arr = [1, 2, 3, 4, 5, 6, 7]
arr = leftRotate(arr, 2, 7)
print(arr)
[3, 4, 5, 6, 7, 1, 2]
[3, 4, 5, 6, 7, 1, 2]