Python. Операції над кортежами. Обхід кортежу. Методи роботи з кортежами.




Операції над кортежами. Обхід кортежу. Методи роботи з кортежами


Зміст


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

1. Операція присвоювання кортежу =. Приклади

Будь-якому об’єкту, що має ім’я, можна присвоїти кортеж. Приклади присвоєнь кортежів.

a = () # пустий кортеж
b = (5, 'Hello', True) # кортеж з 3-х елементів різних типів
c = ('world', (2.88, "bestprog")) # вкладений кортеж
d = 5, 'Hello', True # такий самий кортеж як і b
e = (3.88,) # Кортеж строго з одного елементу

 

2. Операція tuple() – створення кортежу з ітерованого об’єкту

Кортеж можна створити з допомогою операції tuple(). Ця операція приймає параметром ітерований об’єкт, яким може бути інший кортеж, список, рядок.

Наприклад

# Операція tuple()
# 1. Створення кортежу зі слова 'Hello'
d = tuple('Hello'); # d = ('H', 'e', 'l', 'l', 'o')

# 2. Створення кортежу зі списку
# Заданий список
lst = [2, "abc", 3.88]
# Створити кортеж
e = tuple(lst) # e = (2, 'abc', 3.88)

# 3. Створення кортежу з іншого кортежу
f = tuple((3, 2, 0, -5)) # f = (3, 2, 0, -5)

 

3. Операція T[i]. Отримати елемент за його індексом

Елемент кортежу може бути отриманий за його індексом.

Приклад.

# Кортежі. Операція взяття індексу
# 1. Кортеж, що містить рядки
a = ('a', 'bc', 'def', 'ghij')
item = a[2] # item = 'def'

# 2. Кортеж, що містить інший кортеж та його елементи
b = (a, a[1], True)
item = b[0] # item = ('a', 'bc', 'def', 'ghij')
item = b[1] # item = 'bc'

# 3. Кортеж, що містить список
c = (1, [2, 3, 4], "text")

# 3.1. Витягнути список з кортежу
item = c[1] # item = [2, 3, 4], с = (1, [2, 3, 4], 'text')

# 3.2. Список у кортежі є змінюваний, тому його
# можна змінити
c[1][1] = 8 # с = (1, [2, 8, 4], 'text')

 



4. Операція T[i][j]. Отримати доступ до складеного елементу в кортежі

Як відомо, кортеж може містити вкладені об’єкти, якими можуть бути списки, рядки чи навіть інші кортежі. Щоб отримати елемент вкладеного об’єкту потрібно використати операцію взяття індексу

T[i][j]

де

  • T – назва кортежу;
  • i – позиція вкладеного об’єкту в кортежі;
  •  j – позиція елементу у вкладеному об’єкті.

Приклад.

# Операція T[i][j] - отримати елемент за індексом
# 1. Кортеж, що містить список
A = ( 2.5, ['a', True, 3.17], 8, False, 'z')
item1 = A[1]   # item1 = ['a', True, 3.17]
item2 = A[1][2] # item2 = 3.17

# 2. Кортеж, що містить рядок
B = ( "Hello", "abcd", 2.55)
item1 = B[0]   # item1 = 'Hello'
item2 = B[0][4] # item2 = 'o'

# 3. Кортеж, що містить інший кортеж, список, рядок
C = ( (1, 2, 5), [2, 7, -100], "Python")
item1 = C[0]   # item1 = (1, 2, 5)
item2 = C[0][2] # item2 = 5

# 4. Три рівні вкладення
D = ( [ 7, True, ('a', 'b', 'cd')], 12, "bestprog")
item1 = D[0]       # item1 = [7, True, ('a', 'b', 'cd')]
item2 = D[0][2]   # item2 = ('a', 'b', 'cd')
item3 = D[0][2][1] # item2 = 'b'

 

5. Операція T[i:j] взяття зрізу в кортежі

З допомогою операції взяття зрізу можна отримати інший кортеж. Загальна форма операції взяття зрізу для кортежу наступна

T2 = T1[i:j]

тут

  • T2 – новий кортеж, який утворюється з кортежу T1;
  • T1 – вихідний кортеж, для якого відбувається зріз;
  • i, j – відповідно нижня та верхня межа зрізу. Фактично беруться до уваги елементи, що лежать на позиціях i, i+1, …, j-1. Значення j визначає позицію за останнім елементом зрізу.

Операція взяття зрізу для кортежу може мати модифікації. Біль детально про використання зрізів у Python описується в темі:

Приклад.

# Операція [i:j] - взяття зрізу
# 1. Кортеж, що містить цілі числа
A = ( 0, 1, 2, 3)
item = A[0:2]   # item = (0, 1)

# 2. Кортеж, що містить список
A = ( 2.5, ['abcd', True, 3.1415], 8, False, 'z')
item = A[1:3] # item = (['abcd', True, 3.1415], 8)

# 3. Кортеж, що містить вкладений кортеж
A = (3, 8, -11, "program")
B = ("Python", A, True)
item = B[:3] # item = ('Python', (3, 8, -11, 'program'), True)
item = B[1:] # item = ((3, 8, -11, 'program'), True)

 

6. Конкатенація +

Для кортежів можна виконувати операцію конкатенації, яка позначається символом +. У найпростішому випадку для конкатенації двох кортежів загальна форма операції наступна

T3 = T1 + T2

де

  • T1, T2 – кортежі, для яких потрібно виконати операцію конкатенації. Операнди T1, T2 обов’язково мають бути кортежами. При виконанні операції конкатенації для кортежів, використовувати в якості операндів будь-які інші типи (рядки, списки) заборонено;
  • T3 – кортеж, що є результатом.

Приклад.

# Кортежі. Конкатенація +
# Додавання двох кортежів
A = (1, 2, 3)
B = (4, 5, 6)
C = A + B # C = (1, 2, 3, 4, 5, 6)

# Додавання кортежів зі складними об'єктами
D = (3, "abc") + (-7.22, ['a', 5]) # D = (3, 'abc', -7.22, ['a', 5])

# Конкатенація трох кортежів
A = ('a', 'aa', 'aaa')
B = A + (1, 2) + (True, False) # B = ('a', 'aa', 'aaa', 1, 2, True, False)

 

7. Повторення *

Кортеж може бути утворений шляхом операції повторення, яка позначається символом *. При використанні у виразі загальна форма операції наступна

T2 = T1 * n

тут

  • T2 – результуючий кортеж;
  • T1 – вихідний кортеж, який потрібно повторити n разів;
  • n – кількість повторень кортежу T1.

Приклад.

# Кортежі. Повторення *
# Кортеж, що містить прості числа
A = (1, 2, 3) * 3 # A = (1, 2, 3, 1, 2, 3, 1, 2, 3)

# Кортеж, що містить вкладені об'єкти
B = ("ab", ["1", "12"])*2 # A=('ab', ['1','12'], 'ab', ['1','12'])

 

8. Обхід кортежу в циклі. Приклад

Елементи кортежу можна послідовно переглянути з допомогою операторів циклу while або for.

Приклад

# Обхід кортежу в циклі
# 1. Цикл for
# Заданий кортеж
A = ("abc", "abcd", "bcd", "cde")

# Вивести усі елементи кортежу
for item in A:
    print(item)

# 2. Цикл while
# Вихідний кортеж - цілі числа
A = (-1, 3, -8, 12, -20)

# Обчислити кількість додатніх чисел
i = 0
k = 0 # к-сть додатніх чисел

while i < len(A):
    if (A[i]<0):
      k = k + 1
    i = i + 1

# Вивести результат
print("k = ", k)

# 3. Обхід в циклі for
# Заданий кортеж, що містить рядки
A = ("abc", "ad", "bcd")

# Сформувати новий список з елементів кортежу A,
# у новому списку B, кожен елемент подвоюється
B = [item * 2 for item in A]

print("A = ", A)
print("B = ", B)

Результат виконання програми

abc
abcd
bcd
cde
k = 3
A = ('abc', 'ad', 'bcd')
B = ['abcabc', 'adad', 'bcdbcd']

 

9. Операція in. Перевірка входження елементу в кортеж

 

# Перевірка входження елементу в кортеж
# Оператор in
# Заданий кортеж, що містить рядки
A = ("abc", "abcd", "bcd", "cde")

# Ввести елемент
item = str(input("s = "))

if (item in A):
    print(item, " in ", A, " = True")
else:
    print(item, " in ", A, " = False")

Результат виконання програми

s = abc
abc in ('abc', 'abcd', 'bcd', 'cde')   = True

 

10. Методи роботи з кортежами
10.1. Метод index(). Пошук позиції елементу в кортежі

Щоб отримати індекс (позицію) елементу в кортежі, потрібно використати метод index(). Загальна форма виклику методу наступна

pos = T.index(item)

де

  • T – кортеж, у якому здійснюється пошук;
  • pos – позиція (індекс) елементу item в кортежі. Першому елементу відповідає позиція 0. Якщо елементу немає в кортежі, генерується виключна ситуація. Тому, перед використанням методу index() рекомендується робити перевірку на наявність елементу (з допомогою операції in).

Приклад. У прикладі, в переліку назв днів тижня обчислюється порядковий номер дня.

# Метод index - визначає позицію (індекс) елементу в кортежі
# Заданий кортеж
A = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")

# Запит до вводу назви дня тижня
day = str(input("Enter day: "))

# Коректно обчислити індекс
if day in A: # перевірка, чи є рядок day в кортежі A
    num = A.index(day)
    print("Number of day = ", num + 1)
else:
    num = -1
    print("Wrong day.")

Результат роботи програми

d = 1

 

10.2. Метод count(). Кількість входжень елементу в кортеж

Щоб визначити кількість входжень заданого елементу в кортеж використовується метод count, загальна форма якого наступна:

k = T.count(item)

тут

  • T – вихідний кортеж;
  • k – результат (кількість елементів);
  • item – елемент, кількість входжень якого потрібно визначити. Елемент може бути складеним (рядок, список, кортеж).

Приклад.

# Метод count - підрахунок кількості входжень елементу в кортеж
# Заданий кортеж
A = ("ab", "ac", "ab", "ab", "ca", "ad", "jklmn")

d1 = A.count("ab")   # d1 = 3
d2 = A.count("jprst") # d2 = 0
d3 = A.count("ca")   # d3 = 1

print("d1 = ", d1)
print("d2 = ", d2)
print("d3 = ", d3)

Результат роботи програми

d1 = 3
d2 = 0
d3 = 1

 


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