Кортеж (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, inAfter 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, который представляет страны, состоит из кортежей, каждый из которых - отдельная страна.
Вложенные кортежи имеют три элемента: название страны, численность ее населения и города. Города представляют отдельный кортеж, где каждый отдельный город - это вложенный кортеж, содержащий название города и численность его населения.
Видео по уроку:
2 ответа к “Кортежи в Python”
[…] список можно точно также, как и кортеж, но вместо круглых скобок применяются […]
[…] В данном примере пользователь должен ввести сколько вывести строк из файла. Далее мы с помощью цикла проходим по всему файлу “test.csv” и выводим строки из этого файла. Переменная row является кортежем. […]