Операції над списками: конкатенація, дублювання, видалення, зріз, доступ за індексом
Зміст
- 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]. Приклад
З допомогою зрізу можна змінити вже існуючий список. Операція зміни списку з допомогою зрізу виконується в два етапи:
- Видаляється частина списку, яка розміщується зліва від оператора =;
- Вставка у список нових об’єктів, розміщених справа від оператора =. Вставка відбувається починаючи з лівого краю де знаходився попередній видалений зріз.
# Зміна списку з допомогою зрізу # Задано список 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]
⇑
Зв’язані теми
- Списки. Властивості списків. Приклади, що демонструють властивості списків
- Обробка списків у циклах. Створення списків з допомогою генераторів списків. Ітерації по списках. Представлення та обробка матриць з допомогою списків. Операція in
⇑