В серии: Библиотека alt м. В. Сысоева, И. В. Сысоев
Download 0.87 Mb.
|
Боши Лекция Парадигма и методы программирование
- Bu sahifa navigatsiya:
- 2.5 Кортежи
2.5. Кортежи>>> mylist2 [6, 10, 2015, [’Программирование’, 11.3]] >>> mylist2[-1] [’Программирование’, 11.3] Во второй список специально был добавлен ещё один список, чтобы показать, что списки могут быть вложенными. Также в последней приведённой программе была использована возможность индексировать списки с конца: минус первый элемент списка — это его последний элемент. Таким образом, mylist2[-1] — это обращение к последнему (первому с конца) элементу списка, являющемуся тоже списком. 2.5 КортежиСписок так же может быть неизменяемым, как и строка, в этом случае он называется кортеж (tuple). Кортеж использует меньше памяти, чем список. При задании кортежа вместо квадратных скобок используются круглые (хотя можно и совсем без скобок). Кортеж не допускает изменений, в него нельзя добавить новый элемент, удалить или заменить существующие элементы, но он может содержать изменяемые объекты, например, списки: >>> ll = [] >>> A = (1, 2, 3, ll) >>> A (1, 2, 3, []) >>> A[1] = 4 Traceback (most recent call last): File " ", line 1, A[1] = 4 TypeError: ’tuple’ does support item assignment >>> A[3].append(3) >>> (A, ll) (1, 2, 3, [3]) [3] Видно, что прямая замена элемента кортежа недопустима — вызывает TypeError, так как тип tuple не поддерживает изменеине элементов, но если использовать втроенный метод append у списка, являющегося элементом кортежа, этот список можно изменить. Функция tuple() берет в качестве аргумента строку или список и превращает его в кортеж, а функция list() переводит кортеж в список: >>> B = (A) >>> B [1, 2, 3] >>> C = (B) >>> C (1, 2, 3) Основное различие между кортежами и списками состоит в том, что кортежи не могут быть изменены. На практике это означает, что у них нет методов, которые бы позволили их изменить: append(), extend(), insert(), remove(), pop(). Но можно взять срез от кортежа, так как при этом создастся новый кортеж. Кортежи в некоторых случаях быстрее, чем списки. Но такие оптимизации в каждом конкретном случае требуют дополнительных исследований. Кортежи делают код безопаснее в том случае, если у вас есть «защищенные от записи» данные, которые не должны изменяться. Некоторые кортежи могут использоваться в качестве элементов множества и ключей словаря (конкретно, кортежи, содержащие неизменяемые значения, например, строки, числа и другие кортежи). Словари будут рассмотрены в следующем разделе. Списки никогда не могут использоваться в качестве ключей словаря, потому что списки — изменяемые объекты. В Python можно использовать кортежи, чтобы присваивать значение нескольким переменным сразу: >>> v = (’f’, 5, True) >>> (x, y, z) = v >>> x ’f’ >>> y 5 >>> z True >>> Это не единственный способ использования. Предположим, что вы хотите присвоить имена диапазону значений. Вы можете использовать встроенную функцию range() для быстрого присвоения сразу нескольких последовательных значений. >>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = (1, 8) >>> MONDAY 1 >>> SUNDAY 7 >>> Заметим, что при вводе длинных списков, кортежей и словарей как в интерактивном, так и в скриптовом режиме можно перейти на следующую строчку после любой запятой, разделяющей элементы. Это позволяет в большинстве случаев избежать использования символа переноса строки «\». 2.6. Словари Download 0.87 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling