Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011-kl-lab2.doc
Скачиваний:
6
Добавлен:
12.11.2019
Размер:
822 Кб
Скачать
☆

4. Кортежі

Як можна було побачити раніше, списки і стрічки мають багато загальних властивостей, таких як індексація і зрізи. Вони є прикладами типів даних "послідовність". Існує ще один стандартний тип даних послідовності: кортеж.

Кортеж складається з множини значень, що розділені комами, наприклад:

>>> t = 12345, 54321, 'Привіт!'

>>> t[0]

12345

>>> t

(12345, 54321, 'hello!')

>>> # Кортежі так само можуть бути вкладеними:

... u = t (1, 2, 3, 4, 5)

>>> u

((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))

Вміст кортежів завжди поміщається в круглі дужки, для того, щоб вкладені кортежі інтерпретувалися правильно; вони можуть бути введені як з, так і без навколишніх круглих дужок, хоча часто круглі дужки необхідні так чи інакше (особливо, якщо кортеж - частина більшого виразу).

Кортежі використовуються дуже часто. Наприклад: (x, у) - координати в парі, запис в базі даних тощо. Кортежі, подібно до рядків, є незмінними: неможливо змінити окремі елементи кортежу. Можна створювати кортежі, які містять змінні об'єкти, на подобі списків.

Порожні кортежі створюються парою круглих дужок без всяких елементів; кортеж з одним елементом створюється одним значенням з комою після нього (недостатньо включити одне значення в круглі дужки). Наприклад:

>>> kortez_0=()

>>> type(kortez_0)

<type 'tuple'>

>>> len(kortez_0)

0

>>> kortez_1='hello',

>>> type(kortez_1)

<type 'tuple'>

>>> len(kortez_1)

1

>>> kortez_2='by',0

>>> type(kortez_2)

<type 'tuple'>

>>> len(kortez_2)

2

Інструкція kortez_2='by',0 є типовим прикладом упаковки кортежу: значення 'by' і 0 упаковані в одному кортежі. Також можлива операція розпаковування кортежу:

>>> x,y=kortez_2

>>> x

'by'

>>> y

0

Цієї операції достатньо, щоб розпакувати послідовність. Послідовність, що підлягає розпаковуванню вимагає списку змінних зліва, щоб кількість елементів зліва збігалася з довжиною послідовності. Зверніть увагу, що множинне призначення - дійсно тільки для комбінації упаковки кортежу і його розпаковування!

Тут також слід зазначити маленьку асиметрію упаковки і розпаковування кортежів: упаковка кількох значень завжди створює кортеж, в результаті роботи розпаковування може бути будь-яка послідовність.

5. Набори

Python використовує такий тип даних як набори.

Набір - це неврегульована колекція значень без дублікатів елементів.

Основне використання полягає у тестуванні вмісту і усунення подвійних значень. Набори також підтримують математичні операції такі як, об'єднання, перетинання, порівняння, і симетричне порівняння.

>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']

>>> fruit = set(basket) # створення набору без дублікатів

>>> fruit

set(['orange', 'pear', 'apple', 'banana'])

>>> 'orange' in fruit # швидке тестування вмісту

True

>>> 'crabgrass' in fruit

False

>>> # Демонструє операції над набором і наявність символів у вмісті набору

...

>>> а = set('abracadabra')

>>> b = set('alacazam')

>>> а # які унікальні символи є в а

set(['a', 'r', 'b', 'c', 'd'])

>>> а – b # символи в а, але що не входять в b

set(['r', 'd', 'b'])

>>> а | b # символи, що містяться в а або b

set(['a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'])

>>> а & b # символи містяться і в а, і в b

set(['a', 'c'])

>>> а ^ b # символи містяться в а або в b, але не в обох словах

set(['r', 'd', 'b', 'm', 'z', 'l'])

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]