Языки программирования

Кортежи в Python

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

Они используются для представления неизменяемой последовательности разнородных объектов. Кортежи хорошо защищены от изменений, как намеренных (что плохо), так и случайных (что хорошо).

Кортеж создаётся простым присваиванием элементов, разделённых запятыми. Также – их можно указывать в скобках. Например:
cor1 =('physics', 'chemistry', 1997, 2000)
cor2 =(1,2,3,4,5)
cor3 ="a","b","c","d"
Пустой кортеж создаётся указанием пустых скобок или с помощью функции:
cor1 = ()     # С помощью указания пустых скобок
cor2 = tuple() # С помощью встроенной функции tuple()
Чтобы создать кортеж, содержащий только один элемент необходимо добавлять запятую:
cor1 =(50,)
print(cor1[0])
# выведет 50

Получение данных из кортежа

Чтобы получить какой-то элемент из кортежа – надо использовать квадратные скобки с указанием индекса или индексов. Например:
cor1 = ('physics', 'chemistry', 1997, 2000)
cor2 = (1, 2, 3, 4, 5, 6, 7 )

print("cor1[0]: ", cor1[0])
print("cor2[1:5]: ", cor2[1:5])
input()

#выведет: cor1[0]:  physics
#выведет: cor2[1:5]:  (2, 3, 4, 5)

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

Кортежи являются неизменяемыми последовательностями в Python, т.е. нельзя просто изменить элемент, присвоив ему новое значение. Однако – можно взять часть имеющегося кортежа и создать новый. Например:
cor1 = (12, 34.56)
cor2 = ('abc', 'xyz')

# Создадим новый кортеж следующим образом
cor3 = cor1 + cor2
print(cor3)

input()

#выведет: (12, 34.56, 'abc', 'xyz')

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

Чтобы удалить кортеж полностью – используется оператор del. Например:
cor = ('physics', 'chemistry', 1997, 2000)
print(cor)

del cor
print("After deleting cor : ")
print(cor)

# будет выведено
Traceback (most recent call last):
('physics', 'chemistry', 1997, 2000)
  File "C:/Users/root/Desktop/untitled/index.py", line 8, in 
After deleting cor : 
    print(cor)
NameError: name 'cor' is not defined

Базовые операторы кортежей

Кортежи работают с операторами + и * также, как и строки или списки – они используются для конкатенации и повторения, за исключением того – что в результате получится новый кортеж, а не список или строка. Фактически, кортежи поддерживают те же операции с последовательностями, как и строки.

Перебор кортежей

Для перебора кортежа можно использовать стандартные циклы for и while. Например:
# С помощью цикла for:
user = ("Tom", 22, False)
for item in user:
    print(item)
input()
# будет выведено:
Tom
22
False

# С помощью цикла while:
user = ("Tom", 22, False)
 
i = 0
while i < len(user):
    print(user[i])
    i += 1
input()
# будет выведено:
Tom
22
False

Функция len() и оператор in

К кортежам может применяться функция len(), возвращающая число элементов кортежа:
cars = ("Nissan", "Audi")
print("Сейчас у вас ", len(cars), " автомобилей")

input()
# выведет: Сейчас у вас  2  автомобилей
Проверить существование элемента кортежа можно так:
cars = ("Nissan", "Audi")
if "Nissan" in cars:
    print("В вашем гараже есть Nissan")

input()
# выведет: В вашем гараже есть Nissan

Сложные кортежи

Один кортеж может содержать другие кортежи в виде элементов. Например:
countries = (
    ("Germany", 80.2, (("Berlin",3.326), ("Hamburg", 1.718))),
    ("France", 66, (("Paris", 2.2),("Marsel", 1.6)))
)
 
for country in countries:
    countryName, countryPopulation, cities = country
    print("\nCountry: {}  population: {}".format(countryName, countryPopulation))
    for city in cities:
        cityName, cityPopulation = city
        print("City: {}  population: {}".format(cityName, cityPopulation))
input()

# будет выведено:
Country: Germany  population: 80.2
City: Berlin  population: 3.326
City: Hamburg  population: 1.718

Country: France  population: 66
City: Paris  population: 2.2
City: Marsel  population: 1.6
Здесь кортеж countries, который представляет страны, состоит из кортежей, каждый из которых - отдельная страна.

Вложенные кортежи имеют три элемента: название страны, численность ее населения и города. Города представляют отдельный кортеж, где каждый отдельный город - это вложенный кортеж, содержащий название города и численность его населения.

Видео по уроку:
Самоучитель по Python