💻 Примеры кода: кортежи

⚡ Минимальные примеры

values = (10, 20, 30)
print(values[1])

first, *middle, last = (1, 2, 3, 4)
print(first, middle, last)

for index, value in enumerate(values, start=1):
    print(index, value)

Запомните: кортеж удобен для фиксированного набора значений, а распаковка делает код короче и понятнее.

Пример 1. Карточка пользователя как кортеж

📄 examples/tuple_profile.py
user = ("Alice", 29, "Python")
name, age, language = user

print(f"Имя: {name}")
print(f"Возраст: {age}")
print(f"Язык: {language}")

Кортеж хорошо подходит, когда структура небольшая и фиксированная: имя, возраст, язык.

Пример 2. Операции с кортежами

📄 examples/tuple_operations.py
tuple1 = (1, 2)
tuple2 = (3, 4)

print(tuple1 + tuple2)
print(tuple1 * 3)
print(2 in tuple1)
print(len(tuple1))
print((1, 2, 3) == (1, 2, 4))

Пример 3. Уникальные элементы без неизученных коллекций

📄 examples/unique_tuple.py
numbers = (1, 2, 3, 2, 1, 4, 5, 3, 6)
unique_numbers = tuple()

for number in numbers:
    if number not in unique_numbers:
        unique_numbers += (number,)

print("Уникальные элементы:", unique_numbers)

Это решение следует ограничению из исходного задания: не использовать неизученные коллекции.

Пример 4. Элементы выше среднего

📄 examples/above_average.py
numbers = (10, 15, 20, 25, 30)
average = sum(numbers) / len(numbers)
greater_than_average = tuple()

for number in numbers:
    if number > average:
        greater_than_average += (number,)

print("Элементы больше среднего:", greater_than_average)

Пример 5. enumerate() для вывода номеров

📄 examples/enumerate_languages.py
languages = ("Python", "Java", "C++")

for index, language in enumerate(languages, start=1):
    print(f"{index}: {language}")

Пример 6. Сравнение соседних элементов

📄 examples/neighbor_compare.py
numbers = (10, 20, 15, 30, 25, 35)

for index, value in enumerate(numbers[:-1]):
    next_value = numbers[index + 1]
    if value > next_value:
        print(f"{value} больше, чем {next_value}")

Срез numbers[:-1] защищает от выхода за границы: последний элемент не сравнивается с несуществующим следующим.

Пример 7. Индексы повторяющихся элементов

📄 examples/repeated_indexes.py
numbers = (1, 2, 3, 4, 2, 5, 3, 6, 4, 2, 9)
processed = tuple()

for number in numbers:
    if numbers.count(number) > 1 and number not in processed:
        indexes = tuple()
        for index, current in enumerate(numbers):
            if current == number:
                indexes += (index,)
        processed += (number,)
        print(f"Индексы элемента {number}:", *indexes)

Пример 8. Распаковка остатка через *

📄 examples/star_unpacking.py
numbers = (3, 7, 2, 8, 5, 10, 1)
first, *middle, last = numbers

print("Первый:", first)
print("Середина:", middle)
print("Последний:", last)
Проверить по документации: звёздочная распаковка полезна не только с кортежами, но и с другими итерируемыми объектами; это общий синтаксис Python.