Наоми Седер - Python. Экспресс-курс
- Название:Python. Экспресс-курс
- Автор:
- Жанр:
- Издательство:Питер
- Год:2019
- ISBN:978-5-4461-0908-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Наоми Седер - Python. Экспресс-курс краткое содержание
Наоми Седер рассказывает не только об основных особенностях языка Python, но и его объектно-ориентированных возможностях, которые появились в Python 3. Данное издание учитывает все изменения, которые произошли с языком за последние 5 лет, а последние 5 глав рассказывают о работе с большими данными.
Python. Экспресс-курс - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
>>> x = ["first", "second", "third", "fourth"]
>>> x[0]
'first'
>>> x[2]
'third'
>>> x[-1]
'fourth'
>>> x[-2]
'third'
>>> x[1:-1]
['second', 'third']
>>> x[0:3]
['first', 'second', 'third']
>>> x[-2:-1]
['third']
>>> x[:3]
['first', 'second', 'third']
>>> x[-2:]
['third', 'fourth']
Индексирование от начала списка использует положительные значения (0 со-ответствует первому элементу). Индексирование от конца списка использует отрицательные индексы (–1 соответствует последнему элементу). Сегмент созда-ется записью вида [m:n] , где m — индекс начального элемента (включительно), а n — индекс конечного элемента (не включая его) (табл. 3.1). Сегмент [:n] на-чинается от начала списка, а сегмент [m:] продолжается до конца списка. Таблица 3.1. Индексы в списках

Эта форма записи может использоваться для добавления, удаления и замены эле-ментов списка, а также для получения отдельных элементов или новых списков, которые представляют собой сегменты существующих списков: >>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[1] = "two"
>>> x[8:9] = []
>>> x
[1, 'two', 3, 4, 5, 6, 7, 8]
>>> x[5:7] = [6.0, 6.5, 7.0]
[1, 'two', 3, 4, 5, 6.0, 6.5, 7.0, 8]
>>> x[5:]
[6.0, 6.5, 7.0, 8]
Если новый сегмент больше или меньше заменяемого , то размер списка увели-чивается или уменьшается.
Также для работы со списками используются некоторые встроенные функции ( len , max и min ), некоторые операторы ( in , + и * ), команда del и методы списков ( append , count , extend , index , insert , pop , remove , reverse и sort ): >>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> len(x)
9
>>> [-1, 0] + x
[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x.reverse()
>>> x
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Каждый из операторов + и * создает новый список, оставляя исходный список без изменений . Для вызова методов списка используется синтаксис атрибутов, при-меняемый к самому списку: x.метод(аргументы) .
Некоторые из этих операций повторяют функциональность, которая может быть реализована в синтаксисе сегментов, но при этом код становится более понятным.
3.2.3. Кортежи
Кортежи (tuples) похожи на списки, но они являются неизменяемыми — другими словами, эти объекты невозможно изменить после создания. Операторы ( in , + и * ) и встроенные функции ( len , max и min ) работают с кортежами так же, как со списка-ми, потому что они не изменяют оригинал. Индексы и синтаксис сегментов работают аналогично для получения элементов или сегментов, но не могут использоваться для добавления, удаления или замены элементов. У кортежей всего два метода: count и index . Одна из важных областей применения кортежей — использование в качестве ключей в словарях. Также кортежи более эффективно работают в тех ситуациях, в которых изменяемость не нужна.
()
(1,)
(1, 2, 3, 4, 5, 6, 7, 8, 12)
(1, "two", 3L, 4.0, ["a", "b"], (5, 6))
Кортеж из одного элемента должен содержать запятую. Кортеж, как и список, может содержать произвольные комбинации других типов в своих элементах: строки, кортежи, списки, словари, функции, объекты файлов и любые разновид-ности чисел .
Список преобразуется в кортеж при помощи встроенной функции tuple : >>> x = [1, 2, 3, 4]
>>> tuple(x)
(1, 2, 3, 4)
И наоборот, кортеж преобразуется в список при помощи встроенной функции list : >>> x = (1, 2, 3, 4)
>>> list(x)
[1, 2, 3, 4]
3.2.4. Строки
Работа со строками — одна из сильных сторон Python. Существует много способов определения строк с разными ограничителями:
"A string in double quotes can contain 'single quote' characters." 'A string in single quotes can contain "double quote" characters.' '''\tA string which starts with a tab; ends with a newline character.\n''' """This is a triple double quoted string, the only kind that can contain real newlines."""
Строки могут ограничиваться одинарными ( ' ' ), двойными ( " " ), утроенными одинарными ( ''' ''' ) или утроенными двойными ( """ """ ) кавычками; они могут содержать символы табуляции ( \t ) и символы новой строки ( \n ). Строки также являются неизменяемыми. Операторы и функции, которые рабо-тают с ними, возвращают новые строки, полученные на основе оригинала. Опе-раторы ( in , + и * ) и встроенные функции ( len , max и min ) работают со строками так же, как они работают со списками и кортежами. Синтаксис индексирования и сегментирования работает аналогичным образом для получения элементов и сегментов, но он не может использоваться для добавления, удаления или за-мены элементов.
Строки поддерживают ряд методов для работы с их содержимым; библиотечный модуль re также содержит функции для работы со строками: >>> x = "live and let \t \tlive"
>>> x.split()
['live', 'and', 'let', 'live']
>>> x.replace(" let \t \tlive", "enjoy life")
'live and enjoy life'
>>> import re
>>> regexpr = re.compile(r"[\t ]+")
>>> regexpr.sub(" ", x)
'live and let live'
Модуль re предоставляет функциональность регулярных выражений — более сложные и мощные средства поиска по шаблону и замены по сравнению с модулем string .
Функция print выводит строки. Другие типы данных Python легко преобразуются в строки и форматируются функцией print :
>>> e = 2.718
>>> x = [1, "two", 3, 4.0, ["a", "b"], (5, 6)]
>>> print("The constant e is:", e, "and the list x is:", x) The constant e is: 2.718 and the list x is: [1, 'two', 3, 4.0, ['a', 'b'], (5, 6)]
>>> print("the value of %s is: %.2f" % ("e", e))
the value of e is: 2.72
Объекты автоматически преобразуются в строковое представление для вывода . Оператор % предоставляет возможности форматирования, сходные с возмож-ностями функции sprintf языка C.
3.2.5. Словари
Встроенный тип данных словаря (dictionary) в языке Python предоставляет функциональность ассоциативных массивов, реализованную на базе хеш-таблиц. Встроенная функция len возвращает количество пар «ключ–значение» в словаре. Команда del используется для удаления пары «ключ–значение». Как и в случае со списками, доступны различные методы для выполнения операций со словарями ( clear , copy , get , items , keys , update и values ).
>>> x = {1: "one", 2: "two"}
>>> x["first"] = "one" Связывает с ключом «first» значение «one» >>> x[("Delorme", "Ryan", 1995)] = (1, 2, 3)
>>> list(x.keys())
['first', 2, 1, ('Delorme', 'Ryan', 1995)]
>>> x[1]
'one'
>>> x.get(1, "not available")
'one'
>>> x.get(4, "not available")
'not available'
Ключи должны относиться к неизменяемому типу — числа, строки, кортежи и т. д. Значениями могут быть объекты любого типа, включая такие изменяемые типы, как списки и словари. При попытке обратиться к значению ключа, отсут-ствующего в словаре, произойдет ошибка KeyError . Чтобы избежать этой ошибки, при отсутствии ключа в словаре метод словаря get может возвращать значение, определяемое пользователем.
3.2.6. Множества
Читать дальшеИнтервал:
Закладка: