Кортежи и их методы

1. Что такое кортеж

  • Кортеж — это неизменяемая (immutable) последовательность объектов.

  • Создаётся с помощью круглых скобок () или просто перечислением элементов через запятую.

t1 = (1, 2, 3)
t2 = 4, 5, 6
t3 = (1,)  # кортеж из одного элемента, нужна запятая

2. Особенности кортежей

  1. Неизменяемость

    • Элементы нельзя менять, добавлять или удалять после создания.

  2. Поддержка индексов и срезов

t = (1, 2, 3, 4)
print(t[0])   # 1
print(t[-1])  # 4
print(t[1:3]) # (2, 3)
  1. Могут содержать любые типы данных

t = (1, "text", [1,2], (3,4))
  1. Используются как ключи в словарях

  • Так как кортежи неизменяемые и хешируемые, их можно использовать как ключи словарей.


3. Основные методы кортежей

  • Кортежи имеют очень мало встроенных методов, так как они неизменяемы:

Метод
Описание

tuple.count(value)

Возвращает количество вхождений значения

tuple.index(value, start, end)

Возвращает индекс первого вхождения значения, можно указать диапазон

t = (1, 2, 3, 2)
print(t.count(2))  # 2
print(t.index(3))  # 2
  • Для остального используют функции и операции, которые применимы к последовательностям: len(), in, +, *, min(), max(), sum().

t = (1, 2, 3)
print(len(t))    # 3
print(2 in t)    # True
print(t + (4,5)) # (1,2,3,4,5)
print(t * 2)     # (1,2,3,1,2,3)

4. Применение в автотестах

  • Хранение фиксированных данных

user = ("Alice", "password123", True)
  • Возврат нескольких значений из функции

def get_user():
    return "Alice", "password123"

username, password = get_user()
  • Использование в качестве ключей словаря

location = {(10, 20): "Start", (30, 40): "End"}
print(location[(10, 20)])  # "Start"
  • Срезы и проверка данных

test_data = (1,2,3,4)
assert 3 in test_data
assert test_data[:2] == (1,2)

💡 Вывод:

  • Кортежи — неизменяемые последовательности, поддерживают индексацию, срезы и два метода (count, index).

  • Используются для фиксированных данных, возврата нескольких значений, ключей словаря и проверок данных в автотестах.

Last updated

Was this helpful?