/
Вопросы и ответы
/
Python
/

Что делает метод swap python?

Что делает метод swap python?

4 года назад

Andrey Moshkov

Ответы

0

Метод swap() в Python используется для обмена значениями двух переменных. Как правило, он принимает две переменные и меняет их значения местами.

Пример:

1
2
3
4
5
6
7
a = 5
b = 10

a, b = b, a

print('a =', a)
print('b =', b)

Этот код выведет:

1
2
a = 10
b = 5

Таким образом, метод swap() позволяет с легкостью менять значения двух переменных без необходимости использования дополнительной временной переменной.

2 года назад

Elena Gromova

0

Встроенного метода или функции swap() в Python нет. Значения двух переменных меняют местами множественным присваиванием:

1
2
3
4
a = 5
b = 10
a, b = b, a
print(a, b)  # 10 5

Справа Python собирает кортеж (b, a), слева распаковывает его в a и b. Временная переменная не нужна.

Поменять элементы списка

1
2
3
items = ['a', 'b', 'c', 'd']
items[0], items[3] = items[3], items[0]
print(items)  # ['d', 'b', 'c', 'a']

Своя функция, если обмен нужен часто:

1
2
3
4
5
def swap(lst, i, j):
    lst[i], lst[j] = lst[j], lst[i]

swap(items, 1, 2)
print(items)  # ['d', 'c', 'b', 'a']

Функция меняет список на месте и ничего не возвращает: список передаётся по ссылке.

Почему не работает функция для чисел

1
2
3
4
5
6
def swap(x, y):
    x, y = y, x

a, b = 1, 2
swap(a, b)
print(a, b)  # 1 2 — ничего не поменялось

Функция меняет свои локальные имена x и y. Переменные a и b снаружи остаются прежними. Верните результат и присвойте его:

1
2
3
4
def swap(x, y):
    return y, x

a, b = swap(a, b)

Хотя проще сразу написать a, b = b, a.

Поменять ключи и значения словаря

1
2
d = {'a': 1, 'b': 2}
print({v: k for k, v in d.items()})  # {1: 'a', 2: 'b'}

Где встречается swap

  • str.swapcase() — меняет регистр букв: 'Hello'.swapcase() → 'hELLO'.
  • pandas: df.swaplevel() меняет уровни мультииндекса, df.swapaxes() устарел — используйте df.T.
  • NumPy: np.swapaxes(arr, 0, 1) меняет оси массива.

Переменные и списки разбирают в бесплатном курсе «Основы Python».

9 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845