Слайд 2
Язык программирования Python
(Лекция 12. Кортежи)
Валеева Н.Х. –
кан. пед. наук, преподаватель ц/к ПЭВМ
Слайд 3
Язык программирования Python
был создан примерно в 1991
году голландцем
Гвидо ван Россумом.
Официальный сайт http://python.org
Слайд 4
Кортеж (tuple)
Кортежи в Python
- упорядоченные неизменяемые совокупности объектов произвольных типов, заключенные в
круглые скобки
Например:
(23, 656, -20, 67, -45) # кортеж целых чисел
(4.15, 5.93, 6.45, 9.3, 10.0, 11.6) # кортеж из дробных чисел
("Katy", "Sergei", "Oleg", "Dasha”) # кортеж из строк
("Москва", "Титова", 12, 148.4) # смешанный кортеж
([0, 0, 0], [0, 0, 1], (0, 1, 0), 100) # кортеж, состоящий из списков, кортежей и числа
Кортеж, по сути - неизменяемый cписок.
Слайд 5
Особенности кортежа
Кортеж защищен от изменений, как намеренных (что
плохо), так и случайных (что хорошо). То есть «защита
от дурака».
Имеет меньший размер:
>>> a = (1, 2, 3, 4, 5, 6)
>>> b = [1, 2, 3, 4, 5, 6]
>>> a.__sizeof__() # 36
>>> b.__sizeof__() # 44
Кортежи работают быстрее, чем списки.
Кортежи можно использовать в качестве ключей словаря
Слайд 6
Кортежи и списки
Основное отличие между кортежами
и списками состоит в том, что кортежи не могут
быть изменены. На практике это означает, что у них нет методов, которые бы позволили их изменить. У списков есть такие методы, как append(), extend(), insert(), remove(), и pop().
У кортежей ни одного из этих методов нет!
Слайд 7
Способы создания кортежей
1. Пустой кортеж:
>>> a = ()
или
>>> b = tuple()
2. Одноэлементный кортеж:
>>> a = (5, )
>>> print(a)
(5, )
Слайд 8
3. Произвольный кортеж можно создать простым перечислением элементов:
>>>
a = (1, 2, 3, 4, 5)
>>> print(a)
(1, 2, 3, 4, 5)
Или
>>> a = tuple((1, 2, 3, 4)) # скобки!
>>> print(a)
(1, 2, 3, 4)
Или
>>> a = ('hello, world!')
>>> a
('h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!')
Способы создания кортежей
Слайд 9
Доступ к элементам кортежа
Осуществляется через индекс:
>>> a =
(1, 2, 3, 4, 5)
>>> print(a[0])
1
>>>
print(a[1:3])
(2, 3)
>>> a[1] = 3
TypeError: 'tuple' object does not support item assignment
Слайд 10
>>> a = (1, 2, 3, 4, 5)
>>> del a[0]
TypeError: 'tuple' object doesn't support item
deletion
>>> del a
>>> print(a)
NameError: name 'a' is not defined
Удаление кортежей
Слайд 11
Кортежи. Выводы.
Вы не можете добавить элементы к кортежу. Кортежи
не имеют методов append() или extend().
Вы не можете удалять элементы из кортежа. Кортежи не имеют методов remove() или pop().
Вы можете искать элементы в кортежи, поскольку это не изменяет кортеж.
Вы также можете использовать оператор in, чтобы проверить существует ли элемент в кортеже.
Слайд 12
Кортеж ?=? Cписок
Функция tuple() принимает список и
возвращает кортеж из всех его элементов:
a = [1,
2, 3, 4, 5] # наш список
b = tuple(a) # преобразование в кортеж
print(b) # вывод кортежа (1, 2, 3, 4, 5)
Функция list() принимает кортеж и возвращает список:
a = (1, 2, 3, 4, 5, [1, 2]) # наш кортеж
b = list(a) # преобразование в список
print(b) # вывод списка [1, 2, 3, 4, 5, [1, 2]]
Иначе, tuple() замораживает список,
а list() размораживает кортеж.
Слайд 14
Методы кортежей
1. cmp(tuple1, tuple2) - сравнение элементов
двух кортежей;
2. len(tuple) - количество элементов в
кортеже;
3. max(tuple) - получить наибольший элемент кортежа;
4. min(tuple) - получить наименьший элемент кортежа;
5. sorted(tuple) – отсортировать кортеж;
6. tuple.index() – получить индекс указанного элемента кортежа;
7. tuple.count() - получить количество вхождений в кортеж указанного элемента
Слайд 15
Задача
Дана последовательность фамилий сотрудников фирмы с годами их
рождения.
Выделить из этого списка кортеж фамилий, подсчитать количество, отсортировать
и вывести в текстовый файл fio.txt в столбик
А также выделить кортеж годов рождения и определить возраст самого молодого и пожилого работников.
Слайд 17
Количество сотрудников - 5
Список работников по алфавиту
['Ардов', 'Бахарев',
'Козлов', 'Салин', 'Шудрик']
Возраст самого молодого сотрудника равен 21
Возраст самого
пожилого сотрудника равен 55