Python. Кортежи. Основные понятия. Свойства кортежей




Кортежи. Основные понятия. Свойства кортежей


Содержание


Поиск на других ресурсах:

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. Что есть общего между кортежами и списками?

Между кортежами и списками можно выделить следующие общие особенности:

  1. Списки и кортежи являются коллекциями объектов или последовательностями.
  2. Списки и кортежи обеспечивают приведение в порядок своих объектов слева направо.
  3. Кортежи и списки могут содержать элементы (объекты) любого типа.
  4. В кортежах и списках доступ к элементам осуществляется по смещению.
  5. Кортежи и списки поддерживают одинаковые операции, основанные на использовании смещения. Например, индексирование, получение среза и т.п.
  6. Кортежи и списки есть гетерогенными. Это значит, что кортежи и списки могут содержать другие составные элементы (строки, списки, кортежи).
  7. Кортежи и списки поддерживают произвольное количество вложений.
  8. Кортежи и списки позволяют сохранять массивы ссылок на другие сложные объекты, которые, в свою очередь также могут быть кортежами, списками или строками.

 

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 - запрещено, исключительная ситуация

 


Связанные темы