Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Кортежи (Tuples) в Python: Определение, использование и отличия от списков

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

Кортеж (tuple) — упорядоченная, неизменяемая коллекция объектов. Кортежи — последовательности, как списки. Отличия: кортежи нельзя изменять, они используют круглые скобки, а списки — квадратные.

Создание кортежа — перечисление значений через запятую. Круглые скобки опциональны:

tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5)
tup3 = "a", "b", "c", "d"

Пустой кортеж — две скобки без содержимого:

tup1 = ()

Кортеж с одним элементом требует запятую:

tup1 = (50,)

Индексы начинаются с 0, поддерживаются срезы и конкатенация.

Доступ к значениям в кортежах

Используются квадратные скобки со срезами и индексами:

Live Demo
#!/usr/bin/python
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7)
print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]

Результат:

tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]

Обновление кортежей

Кортежи неизменяемы — нельзя изменить значения элементов. Но можно создать новый кортеж из частей существующих:

Live Demo
#!/usr/bin/python
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# tup1[0] = 100  # Недопустимо для кортежей
tup3 = tup1 + tup2
print tup3

Результат:

(12, 34.56, 'abc', 'xyz')

Удаление элементов кортежа

Удалить отдельный элемент нельзя. Можно собрать новый кортеж без нежелательных элементов.

Чтобы удалить весь кортеж, используйте del:

Live Demo
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000)
print tup
del tup
print "After deleting tup : "
print tup

Результат (исключение, так как кортеж больше не существует):

('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
  File "test.py", line 9, in 
    print tup
NameError: name 'tup' is not defined

Основные операции с кортежами

Кортежи реагируют на + и * как строки: конкатенация и повторение, результат — новый кортеж. Поддерживают все общие операции последовательностей:

Выражение PythonРезультатОписание
len((1, 2, 3))3Длина
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)Конкатенация
('Hi!',) * 4('Hi!', 'Hi!', 'Hi!', 'Hi!')Повторение
3 in (1, 2, 3)TrueПринадлежность
for x in (1, 2, 3): print x,1 2 3Итерация

Индексация, срезы и матрицы

Индексация и срезы работают как для строк. Дано: L = ('spam', 'Spam', 'SPAM!')

ВыражениеРезультатОписание
L[2]'SPAM!'Смещение от нуля
L[-2]'Spam'Отрицательный: отсчёт с конца
L[1:]['Spam', 'SPAM!']Срез извлекает секции

Отсутствие обрамляющих разделителей

Любой набор объектов через запятую без идентифицирующих символов (скобок списков, кортежей) по умолчанию является кортежем:

Live Demo
#!/usr/bin/python
print 'abc', -4.24e93, 18+6.6j, 'xyz'
x, y = 1, 2
print "Value of x , y : ", x, y

Результат:

abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

Встроенные функции кортежей

№Функция и описание
1cmp(tuple1, tuple2) — сравнивает элементы обоих кортежей
2len(tuple) — общая длина кортежа
3max(tuple) — элемент с максимальным значением
4min(tuple) — элемент с минимальным значением
5tuple(seq) — преобразует список в кортеж

Python

  1. Освоение типов данных в Python: практическое руководство
  2. Мастерство операторов Python: Полное руководство
  3. Оператор pass в Python: практическое руководство
  4. Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
  5. Словари в Python: создание, манипуляции и продвинутые техники
  6. Итераторы в Python: как они работают и как создать свои
  7. Замыкания в Python: как вложенные функции захватывают переменные
  8. Модуль datetime в Python: практическое руководство по датам, времени и часовым поясам
  9. Освоение Python time.sleep(): лучшие практики, многопоточность и реальные примеры
  10. Освоение кортежей (tuples) в Python: упаковка, распаковка, сравнение, срезы и ключи словаря