Python. Операції над списками: конкатенація, дублювання, видалення, зріз, доступ за індексом




Операції над списками: конкатенація, дублювання, видалення, зріз, доступ за індексом


Зміст


Пошук на інших ресурсах:

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]. Приклад

З допомогою зрізу можна змінити вже існуючий список. Операція зміни списку з допомогою зрізу виконується в два етапи:

  1. Видаляється частина списку, яка розміщується зліва від оператора =;
  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]

 


Зв’язані теми