0

Объясните как работает функция swap, что делает каждая строка этой функции. Заранее спасибо.

def sorte(num):
    for i in range(len(num)):
        l = i
        for k in range(i+1, len(num)):
            if num[k] < num[l]:
                l = k
        swap(num, l, i)

def swap(v, x, y):
    t = v[x]
    v[x] = v[y]
    v[y] = t

lst = [2,235,654,0,434687,754,32,1]
k = max_num(lst)
sorte(lst)
print(k)
print(lst)
  • Посмотрите a = [3, 4]; swap(a, 0, 1); print(a) да поймёте – andreymal Nov 03 '18 at 18:30
  • В Питоне не нужно использовать вспомогательную переменную t в функции swap(), можно просто написать v[x], v[y] = v[y], v[x]. – MarianD Nov 04 '18 at 13:12

1 Answers1

3

Функция принимает список v и в нём меняет местами элементы с индексами x и y. Построчно:

t = v[x]      # Сохраняем x-ый элемент во временную переменную
v[x] = v[y]   # Записываем в x-ую позицию массива значение из y-вого элемента
v[y] = t      # Записываем в y-ю позицию значение
              # которое было сохранено во временной переменной

Самое смешное, что для этого не обязательно было городить целую функцию, всё можно было записать в одну строчку, используя присваивание с распаковкой:

v[x], v[y] = v[y], v[x]
Xander
  • 20,499