Операции над списками: конкатенация, дублирование, удаление, срез, доступ по индексу
Содержание
- 1. Основные операции работы со списками
- 2. Пример конкатенации (+) списка
- 3. Пример дублирования списка. Операция *
- 4. Удаление элементов из списка. Операция del
- 5. Операция присваивания элемента списка по индексу L[i]. Пример
- 6. Операция присваивания нескольких элементов списка с помощью среза L[i:j]
- 7. Операция изменения списка с помощью среза L[i:j]
- Связанные темы
Поиск на других ресурсах:
1. Основные операции работы со списками
Для работы со списками используются следующие основные операции:
- + – конкатенация списков;
- * – дублирование списка;
- len – определение длины списка;
- del – удаление элемента с списка;
- присваивание по индексу;
- использование среза для доступа к элементам списка и изменения списка.
⇑
2. Пример конкатенации (+) списка
В примере демонстрируется операция добавления (конкатенации) списков
# список L L=[2,3,4] # список LS LS = ["456", 7, 3.1415] # добавить к списку L список LS L=L+LS # L = [2, 3, 4, '456', 7, 3.1415] print("L = ",L)
В результате выполнения вышеприведенного кода, на экран будет выведено
L = [2, 3, 4, '456', 7, 3.1415]
⇑
3. Пример дублирования списка. Операция *
В примере демонстрируется операция дублирования списка, которая обозначается символом *. Текст программы, которая демонстрирует операцию дублирования списков следующий:
# Дублирование списка A = [ 1, 3, 'abcde', -0.02 ] # заданный список B = A # копирование списка A в список B C = A*3 # дублирование списка A в список C 3 раза (3 копии) print("A = ", A) print("B = ", B) print("C = ", C)
В вышеприведенном программном коде сначала создается список A. Затем этот список копируется в список B с помощью операции присваивания =. В строке
C = A*3
список A дублируется в список C 3 раза.
Вышеприведенный код даст следующий результат
A = [1, 3, 'abcde', -0.02] B = [1, 3, 'abcde', -0.02] C = [1, 3, 'abcde', -0.02, 1, 3, 'abcde', -0.02, 1, 3, 'abcde', -0.02]
⇑
4. Удаление элементов из списка. Операция del
4.1. Пример удаления одиночного элемента из списка
Операция del удаляет из списка заданный элемент или диапазон элементов. В нижеследующем примере выполняются следующие операции над списками:
- создается список A;
- с списка A создается список B;
- с списка B удаляется элемент с индексом 2.
Программный код примера
# Операция del # Создать список A = [ 1, 2, 3, 4, 5, 6 ] # Сформировать новый список B = A[0:5] # B = [1, 2, 3, 4, 5] # удалить элемент с индексом 2 из списка B del B[2] print("A = ", A) print("B = ", B)
Выполнение вышеприведенного кода даст следующий результат
A = [1, 2, 3, 4, 5, 6] B = [1, 2, 4, 5]
Важно, чтобы был правильно указанный индекс элемента который нужно удалить с списка. Если неправильно указать индекс, то интерпретатор Python выдаст сообщение об ошибке. Например, если задать
del B[7] # ошибка в индексе
то интерпретатор выдаст следующее сообщение
IndexError: list assignment index out of range
⇑
4.2. Пример операции del L[i:j] удаления диапазона элементов из списка
Операция del позволяет удалять диапазон элементов из списка. В этом случае, через символ : (двоеточие) указывается первый и следующий за последним элементы диапазона, который нужно удалить.
Нижеследующий пример демонстрирует использование операции del для диапазонов чисел:
# Операция del - удаление диапазона # Создать список A A = [ 'a', 'b', 'c', 'd', 'e', 'f' ] # Сформировать новый список B B = list(A) # удалить символы 'b' и 'c' из списка B del B[1:3] # B = ['a', 'd', 'e', 'f'] # Сформировать еще один список C из списка A C = list(A) # C = [ 'a', 'b', 'c', 'd', 'e', 'f' ] # удалить из списка C последние 3 элемента n = len(C) del C[n-3:n] # C = ['a', 'b', 'c'] # сформировать еще один список D D = list(A) # удалить из списка D последний элемент с проверкой на корректность n = len(D) if n>0: del D[n-1] # отобразить результат print("A = ", A) print("B = ", B) print("C = ", C) print("D = ", D)
Выполнение вышеприведенного кода даст следующий результат
A = ['a', 'b', 'c', 'd', 'e', 'f'] B = ['a', 'd', 'e', 'f'] C = ['a', 'b', 'c'] D = ['a', 'b', 'c', 'd', 'e']
⇑
5. Операция присваивания элемента списка по индексу L[i]. Пример
В языке Python есть возможность доступиться к отдельному элементу списка по его индексу с помощью квадратных скобок [ ]. Индексы нумеруются с нуля.
Значение индексов могут быть как отрицательными, так и положительными. Если значения индексов отрицательные, то смещение индексов происходит справа налево. Если значения индексов положительные, то смещение индексов происходит слева направо.
Пример. В примере демонстрируются способы доступа к отдельным элементам списков.
# Операция присваивания отдельных элементов списка # Создать список A A = list(range(1,10)) # A = [1, 2, 3, 4, 5, 6, 7, 8, 9] # вызов операции присваивания t1 = A[-1] # t=9 - отрицательные индексы просматриваются справа налево t2 = A[3] # t=4 - положительные индексы просматриваются слева направо t3 = A[0] # t3=1 print("t1 = ",t1) print("t2 = ",t2) print("t3 = ",t3)
Выполнение вышеприведенного кода даст следующий результат
t1 = 9 t2 = 4 t3 = 1
⇑
6. Операция присваивания нескольких элементов списка с помощью среза L[i:j]
При работе со списками в Python есть возможность присваивать несколько элементов. Такое присваивание имеет название «присваивание среза». В результате создается новый список, который содержит несколько элементов, которые задаются диапазоном.
Пример использования операции присваивания
# Особенности операции присваивания среза # Создать список A A = [ 'abc', 'def', 'ghi', 23.5, 8.8, -11 ] # Создать список B, который содержит 2,3,4 элементы списка A B = A[1:4] # B = ['def', 'ghi', 23.5] # Создать список C, что содержит два последних элемента списка A n = len(A) C = A[n-2:n] # C = [8.8, -11] print("A = ",A) print("B = ",B) print("C = ",C)
Результат выполнения программы
A = ['abc', 'def', 'ghi', 23.5, 8.8, -11] B = ['def', 'ghi', 23.5] C = [8.8, -11]
⇑
7. Операция изменения списка с помощью среза L[i:j]
С помощью среза можно изменить уже существующий список. Операция изменения списка с помощью среза выполняется в 2 етапа:
- Удаляется часть списка, которая размещается слева от оператора =.
- Происходит вставка в список новых объектов, размещенных справа от оператора =. Вставка осуществляется начиная с левого края, где находился предыдущий удаленный срез.
# Изменение списка с помощью среза # Задан список A = [0,0,0,0,0,0] # Изменить список с помощью среза B = list(A) # сделать копию списка A, B = [0,0,0,0,0,0] B[1:]=[1,1,1] # B = [0, 1, 1, 1] C = list(A) # C = [0,0,0,0,0,0] C[1:3]=[1,1,1] # C = [0,1,1,1,0,0,0] D = list(A) # D = [0,0,0,0,0,0] D[:3]=[1,1,1] # D = [1,1,1,0,0,0] E = list(A) E[:5]=[1,1,1] # E = [1,1,1,0] F = list(A) F[1:10]=[1,1,1] #F = [0,1,1,1] print("A = ",A) print("B[1:] = ",B) print("C[1:3] = ",C) print("D[:3] = ",D) print("E[:5] = ",E) print("F[1:10] = ",F)
Результат выполнения программы
A = [0, 0, 0, 0, 0, 0] B[1:] = [0, 1, 1, 1] C[1:3] = [0, 1, 1, 1, 0, 0, 0] D[:3] = [1, 1, 1, 0, 0, 0] E[:5] = [1, 1, 1, 0] F[1:10] = [0, 1, 1, 1]
⇑
Связанные темы
⇑