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

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

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

5 лет назад

Человек-Молекула

Ответы

1

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

1
2
3
l = [1, 2, 3, 4, 5]
l[0], l[2] = l[2], l[0]
l  # [3, 2, 1, 4, 5]

4 года назад

Ivan Mamtsev

0

а как поменять только 4,5 местами и 2и 5?

4 года назад

Rok

0

l = [1, 2, 3, 4, 5] l[-1], l[-2] = l[-2], l[-1] # меняем местами 4 и 5 l # [1, 2, 3, 5, 4]

l = [1, 2, 3, 4, 5] l[1], l[-1] = l[-1], l[1] # меняем местами 2 и 5 l # [1, 5, 3, 4, 2]

4 года назад

Бастет

0

Два элемента списка меняют местами одной строкой — множественным присваиванием:

1
2
3
items = [1, 2, 3, 4, 5]
items[0], items[2] = items[2], items[0]
print(items)  # => [3, 2, 1, 4, 5]

Python сначала вычисляет правую часть (items[2], items[0]), а потом раскладывает её по левой. Временная переменная не нужна.

С отрицательными индексами

Индекс -1 — последний элемент, -2 — предпоследний:

1
2
3
4
5
6
7
items = [1, 2, 3, 4, 5]
items[-1], items[-2] = items[-2], items[-1]  # 4 и 5
print(items)  # => [1, 2, 3, 5, 4]

items = [1, 2, 3, 4, 5]
items[1], items[-1] = items[-1], items[1]    # 2 и 5
print(items)  # => [1, 5, 3, 4, 2]

Поменять по значению

Если известны значения элементов, найдите их индексы через index():

1
2
3
4
items = ['a', 'b', 'c', 'd']
i, j = items.index('b'), items.index('d')
items[i], items[j] = items[j], items[i]
print(items)  # => ['a', 'd', 'c', 'b']

Первый и последний, весь список

1
2
3
4
5
6
items = [1, 2, 3, 4, 5]
items[0], items[-1] = items[-1], items[0]
print(items)        # => [5, 2, 3, 4, 1]

print(items[::-1])  # => [1, 4, 3, 2, 5] — новый список в обратном порядке
items.reverse()     # переворачивает сам список

Соседние элементы попарно

1
2
3
4
items = [1, 2, 3, 4, 5, 6]
for k in range(0, len(items) - 1, 2):
    items[k], items[k + 1] = items[k + 1], items[k]
print(items)  # => [2, 1, 4, 3, 6, 5]

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

8 дней назад

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

+7 800 100 22 47

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

+7 495 085 21 62

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

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