28 сентября 2012 г.

Кортежи, углубляемся

Кортежи

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


Кортежи:
Это упорядоченные коллекции объектов произвольных типов;
Обеспечивают доступ к элементам по смещению;
Относятся к категории неизменяемых последовательностей;


Имеют  фиксированную  длину,  гетерогенны и поддерживают произвольное 
число уровней вложенности;
Массивы ссылок на объекты;


Операция  - Интерпретация
()  - Пустой кортеж
T = (0,) - Кортеж из одного элемента (не выражение)
T = (0, ‘Ni’, 1.2, 3) - Кортеж из четырех элементов
T = 0, ‘Ni’, 1.2, 3 - Еще один кортеж из четырех элементов  (тот же самый, что и строкой выше)
T = (‘abc’, (‘def’, ‘ghi’))  - Вложенные кортежи

T = tuple(‘spam’) Создание кортежа из итерируемого объекта

T[i] 
T[i][j]  - Индекс, индекс индекса, срез, длина
T[i:j]
len(T)

T1 + T2 - Конкатенация, повторение
T * 3

for x in T: print(x)
‘spam’ in t2           -  Обход в цикле, проверка вхождения
[x ** 2 for x in T]

T.index(‘Ni’) - Методы кортежей в версиях 2.6 и 3.0: поиск,  подсчет вхождений
T.count(‘Ni’)   

Кортежи в действии

>>> (1, 2) + (3, 4)             # Конкатенация
(1, 2, 3, 4)
>>> (1, 2) * 4                  # Повторение
(1, 2, 1, 2, 1, 2, 1, 2)
>>> T = (1, 2, 3, 4)   # Индексирование, извлечение среза
>>> T[0], T[1:3]
(1, (2, 3))


>>> x = (40)            # Целое число
>>> x
40


>>> y = (40,)           # Кортеж, содержащий целое число
>>> y
(40,)


>>> T = (‘cc’, ‘aa’, ‘dd’, ‘bb’)
>>> tmp = list(T)    # Создать список из элементов кортежа
>>> tmp.sort()                  # Отсортировать списка
>>> tmp
[‘aa’, ‘bb’, ‘cc’, ‘dd’]
>>> T = tuple(tmp)   # Создать кортеж из элементов списка
>>> T
(‘aa’, ‘bb’, ‘cc’, ‘dd’)
>>> sorted(T)        # Или использовать встроенную функцию sorted
[‘aa’, ‘bb’, ‘cc’, ‘dd’]
Здесь list и tuple – это встроенные функции, которые используются для преобразования в список и затем обратно в кортеж. В действи- тельности обе функции создают новые объекты, но благодаря им создается эффект преобразования.

Также можно использовать генераторы списков для преобразования кортежей:
>>> T = (1, 2, 3, 4, 5)
>>> L = [x + 20 for x in T]
>>> L
[21, 22, 23, 24, 25]

>>> T = (1, 2, 3, 2, 4, 2)     # Методы кортежей в Python 2.6 и 3.0
>>> T.index(2)    # Первое вхождение находится в позиции 2
1
>>> T.index(2, 2) # Следующее вхождение за позицией 2
3
>>> T.count(2)    # Определить количество двоек в кортеже
3





Комментариев нет:

Отправить комментарий