Основные тезисы: кортежи
1. Кортежи - это упорядоченные и неизменяемые коллекции данных. Их можно рассматривать как неизменяемые списки. Они пишутся в круглых скобках:
my_tuple = (1, 2, True, "a string", (3, 4), [5, 6], None)
print(my_tuple)
my_list = [1, 2, True, "a string", (3, 4), [5, 6], None]
print(my_list)
Каждый элемент кортежа может относиться к разному типу (т.е. целые числа, строки, логические значения и т.д.). Более того, кортежи могут содержать другие кортежи или списки (и наоборот).
2. Так Вы можете создать пустой кортеж:
empty_tuple = ()
print(type(empty_tuple)) # outputs: <class 'tuple'>
3. Одноэлементный кортеж может быть создан следующим образом:
one_elem_tuple_1 = ("one", ) # Brackets and a comma.
one_elem_tuple_2 = "one", # No brackets, just a comma.
Если вы удалите запятую, вы скажете Python создать переменную, а не кортеж.:
my_tuple_1 = 1,
print(type(my_tuple_1)) # outputs: <class 'tuple'>
my_tuple_2 = 1 # This is not a tuple.
print(type(my_tuple_2)) # outputs: <class 'int'>
4. Вы можете получить доступ к элементам кортежа, индексируя их:
my_tuple = (1, 2.0, "string", [3, 4], (5, ), True)
print(my_tuple[3]) # outputs: [3, 4]
5. Кортежи неизменяемы, что означает, что Вы не можете изменять их элементы (Вы не можете добавлять, изменять или удалять элементы кортежа). Следующий код вызовет исключение:
my_tuple = (1, 2.0, "string", [3, 4], (5, ), True)
my_tuple[2] = "guitar" # The TypeError exception will be raised.
Однако вы можете удалить кортеж целиком:
my_tuple = 1, 2, 3,
del my_tuple
print(my_tuple) # NameError: name 'my_tuple' is not defined
6. Вы можете перебрать элементы кортежа (Пример 1), проверить, присутствует ли (или нет) конкретный элемент в кортеже (Пример 2), использовать функцию len()
, чтобы проверить, сколько элементов есть в кортеже (Пример 3) или можете объединить/умножить кортежи (Пример 4):
# Пример 1
tuple_1 = (1, 2, 3)
for elem in tuple_1:
print(elem)
# Example 2
tuple_2 = (1, 2, 3, 4)
print(5 in tuple_2)
print(5 not in tuple_2)
# Example 3
tuple_3 = (1, 2, 3, 5)
print(len(tuple_3))
# Example 4
tuple_4 = tuple_1 + tuple_2
tuple_5 = tuple_3 * 2
print(tuple_4)
print(tuple_5)
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Также Вы можете создать кортеж, используя встроенную функцию Python под названием tuple()
. Это особенно полезно, когда Вы хотите преобразовать определенный итерируемый объект (например, список, диапазон, строку и т.д.) в кортеж.:
my_tuple = tuple((1, 2, "string"))
print(my_tuple)
my_list = [2, 4, 6]
print(my_list) # outputs: [2, 4, 6]
print(type(my_list)) # outputs: <class 'list'>
tup = tuple(my_list)
print(tup) # outputs: (2, 4, 6)
print(type(tup)) # outputs: <class 'tuple'>
Таким же образом, если Вы хотите преобразовать итерируемый объект в список, Вы можете использовать встроенную функцию Python под названием list()
:
tup = 1, 2, 3,
my_list = list(tup)
print(type(my_list)) # outputs: <class 'list'>