Кортежи. Основные понятия. Свойства кортежей
Содержание
- 1. Понятие кортежа. Примеры. Необходимость применения кортежей
- 2. Свойства кортежей
- 3. Отличия между кортежами и списками
- 4. Что общего между кортежами и списками?
- 5. Способы (операции) создания кортежа
- 6. Пример создания кортежа, содержащего целые случайные числа
- 7. Пример поиска заданного элемента в кортеже
- 8. Функция len(). Количество элементов в кортеже
- 9. Представление кортежей с одним элементом
- Связанные темы
Поиск на других ресурсах:
1. Понятие кортежа. Примеры. Необходимость применения кортежей
В языке Python кортеж – это группа объектов разных типов, взятых в круглые скобки которая не допускает изменения (есть неизменяемой). Кортежи имеют много свойств. С кортежами можно применять различные операции.
Согласно документации Python, общая форма описания класса кортежа следующая:
class tuple([iterable])
где iterable – некоторая последовательность объектов.
Кортежи необходимы в случаях, когда нужно использовать фиксированные наборы объектов. Одним из примеров может быть использование кортежей в качестве ключей к элементам словарей (ключе нельзя изменять). Также использование кортежей есть важным, когда в задаче нужно обеспечить поддержку целостности, то есть кортеж не может быть изменен из другой ссылки.
Если в задаче нужно использовать коллекции объектов, которые могут быть изменены, то для этих случаев нужно использовать списки.
Примеры кортежей.
() # пустой кортеж (2.3,'ABCDE', False) # кортеж из 3-х элементов разных типов ('world', (2.88, "bestprog"), 3.141592) # вложенный кортеж (3.88, 2,) # Кортеж из двух элементов
⇑
2. Свойства кортежей
Для кортежей выделяют следующие свойства:
- 1. Кортежи – это упорядоченные коллекции объектов произвольных типов. Коллекции объектов упорядочены слева направо.
- 2. В кортежах доступ к элементам обеспечивается по смещению. Кортежи поддерживают операции, которые используются по смещению элементов, например, вытягивание среза, индексирование и т.п..
- 3. Кортежи относятся к категории неизменяемых последовательностей. К кортежам невозможно применить операции непосредственного изменения. Однако, если элементом кортежа есть изменяемый элемент (например список), то этот элемент можно изменять в кортеже.
- 4. Кортежи гетерогенны. Термин «гетерогенный» означает, что кортежи могут содержать другие составные объекты, например, списки, строки или другие кортежи.
- 5. Кортежи поддерживают произвольное количество вложений.
- 6. Кортежи имеют фиксированную длину. Если нужно изменить длину кортежа, то при этом обязательно создается копия кортежа в новом месте памяти, длина которой иная.
- 7. Кортежи можно представлять как массивы ссылок на объекты.
⇑
3. Отличия между кортежами и списками
Между кортежами и списками можно выделить следующие отличия:
- кортеж формируется в круглых скобках (), список формируется в квадратных скобках [];
- кортежи относятся к неизменяемым последовательностям, списки относятся к изменяемым последовательностям. К кортежам невозможно применить операции, которые непосредственно их изменяют. К спискам такие операции применять можно;
- кортежи имеют фиксированную длину (количество элементов), списки имеют переменную длину. Если нужно увеличить размер кортежа, то нужно создать копию.
⇑
4. Что есть общего между кортежами и списками?
Между кортежами и списками можно выделить следующие общие особенности:
- Списки и кортежи являются коллекциями объектов или последовательностями.
- Списки и кортежи обеспечивают приведение в порядок своих объектов слева направо.
- Кортежи и списки могут содержать элементы (объекты) любого типа.
- В кортежах и списках доступ к элементам осуществляется по смещению.
- Кортежи и списки поддерживают одинаковые операции, основанные на использовании смещения. Например, индексирование, получение среза и т.п.
- Кортежи и списки есть гетерогенными. Это значит, что кортежи и списки могут содержать другие составные элементы (строки, списки, кортежи).
- Кортежи и списки поддерживают произвольное количество вложений.
- Кортежи и списки позволяют сохранять массивы ссылок на другие сложные объекты, которые, в свою очередь также могут быть кортежами, списками или строками.
⇑
5. Способы (операции) создания кортежа
Создать кортеж можно одним из 4 способов приведенных ниже.
1. С помощью пары пустых скобок ().
В этом случае создается пустой кортеж. Например
() # создается пустой кортеж
2. В случае одиночного кортежа с помощью запятой в конце элемента, взятого в круглые скобки.
Например.
(2,)
(True, )
3. С помощью использования нескольких элементов разделенных запятой и взятых в круглые скобки.
Например.
(2.5, -11, 3) (a, True, "Tuples")
4. С помощью встроенной функции tuple().
Например.
# Создание вложенных кортежей с помощью операции = a = (2.5, -11, 3) b = (a, True, "Tuples") # b = ((2.5, -11, 3), True, 'Tuples') c = tuple(b) # c = ((2.5, -11, 3), True, 'Tuples')
⇑
6. Пример создания кортежа, содержащего целые случайные числа
# Создать кортеж из последовательности 5 целых чисел, # которые лежат в диапазоне от 0 до 10. # Для использования случайных чисел нужно # подключить модуль random import random # 1. Создать список из чисел lst = [] # сначала пустой список i = 0 while i < 5: num = random.randint(0,10) lst = lst + [num] i = i+1 # 2. Создать кортеж из элементов списка a = tuple(lst) print("a = ", a) # a = (3, 0, 2, 6, 2)
Результат работы программы
a = (4, 1, 4, 5, 7)
⇑
7. Пример поиска заданного элемента в кортеже
# Поиск заданного элемента в кортеже # 1. Заданный кортеж из строк a = ('ab', 'abcd', 'cde', 'abc', 'def') # 2. Ввод искомой строки s = str(input("s = ")) # 3. Цикл обхода кортежа result = False # результат i = 0 while i < len(a): # len(a) - количество элементов в кортеже if (a[i]==s): result = True break i = i+1 if (result): print("Yes") else: print("No")
⇑
8. Функция len(). Количество элементов в кортеже
Для определения длины кортежа (количество элементов в кортеже) используется стандартная функция len().
Пример.
# Функция len() - количество элементов в кортеже a = () # пустой кортеж l = len(a) # l = 0 b = (1, 3, 7, 13, 'abc', True) l = len(b) # l = 6 # Вложенный кортеж c = (a, b, "Hello", 2.33) l = len(c) # l = 4
⇑
9. Представление кортежей с одним элементом
Чтобы указать, что объект есть кортежем, нужно после элемента указать символ ‘ , ‘ (запятая). В противном случае объект будет восприниматься как число.
Например.
# Отличие между объектом, взятым в скобки () и кортежем. # Число num1 имеющее значение 255 num1 = (255) num2 = num1 + 5 # num2 = 255 + 5 = 260 - суммирование обычных целых чисел # Кортеж содержащий число 255 - в конце указывается запятая A = (255,) # B = A + 5 - запрещено, исключительная ситуация
⇑
Связанные темы
⇑