Кортежи в 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]
cor1[0]:  physics
>>> print "cor2[1:5]: ", cor2[1:5]
cor2[1:5]:  (2, 3, 4, 5)

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

Кортежи являются неизменяемыми последовательностями в Python, т.е. нельзя просто изменить элемент, присвоив ему новое значение. Однако – можно взять часть имеющегося кортежа и создать новый. Например:

>>> cor1 = (12, 34.56);
>>> cor2 = ('abc', 'xyz');
>>>
>>> # Следующие действия недействительны для кортежей
... # cor1[0] = 100;
...
>>> # Cоздадим новый кортеж следующим образом
... cor3 = cor1 + cor2;
>>> print cor3;
(12, 34.560000000000002, 'abc', 'xyz')

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

Что бы удалить кортеж полностью – используется оператор del. Например:

>>> cor = ('physics', 'chemistry', 1997, 2000);
>>>
>>> print cor;
('physics', 'chemistry', 1997, 2000)
>>> del cor;
>>> print "After deleting cor : "
After deleting cor :
>>> print cor;
Traceback (most recent call last):
  File "", line 1, in 
NameE

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

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

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

Для перебора кортежа можно использовать стандартные циклы for и while. Например:

# С помощью цикла for:
user = ("Tom", 22, False)
for item in user:
    print(item)

# С помощью цикла while:
user = ("Tom", 22, False)
 
i = 0
while i < len(user):
    print(user[i])
    i += 1

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

Один кортеж может содержать другие кортежи в виде элементов. Например:

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))

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *