Наоми Седер - Python. Экспресс-курс
- Название:Python. Экспресс-курс
- Автор:
- Жанр:
- Издательство:Питер
- Год:2019
- ISBN:978-5-4461-0908-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Наоми Седер - Python. Экспресс-курс краткое содержание
Наоми Седер рассказывает не только об основных особенностях языка Python, но и его объектно-ориентированных возможностях, которые появились в Python 3. Данное издание учитывает все изменения, которые произошли с языком за последние 5 лет, а последние 5 глав рассказывают о работе с большими данными.
Python. Экспресс-курс - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
>>> list((1, 2, 3, 4))
[1, 2, 3, 4]
>>> tuple([1, 2, 3, 4])
(1, 2, 3, 4)
Попутно отметим, что список предоставляет удобный способ разбиения строк на символы:
>>> list("Hello")
['H', 'e', 'l', 'l', 'o']
Этот прием работает, потому что метод list (и tuple ) может применяться к лю-бой последовательности Python, а строка является обычной последовательностью символов. (Строки более подробно рассматриваются в главе 6.)
БЫСТРАЯ.ПРОВЕРКА:.КОРТЕЖИ
Объясните, почему следующие операции недопустимы для кортежа x = (1, 2, 3, 4) : x.append(1)
x[1] = "hello"
del x[2]
Если у вас имеется кортеж x = (3, 1, 4, 2) , как можно отсортировать элементы x ?
5.8. Множества
Множество (set) в Python представляет собой неупорядоченную коллекцию объ-ектов, которая используется в том случае, если вас интересует прежде всего факт принадлежности объекта к коллекции и его уникальность. Как и ключи словарей (глава 7), элементы множества должны быть неизменяемыми и хешируемыми. Это означает, что целые числа, числа с плавающей точкой, строки и кортежи могут быть элементами множества, а списки, словари и сами множества — нет.
5.8.1. Операции с множествами
Кроме операций, применимых к коллекциям вообще (например, in , len и пере-бор для циклов for ), множества поддерживают ряд операций, специфических для множеств:
>>> x = set([1, 2, 3, 1, 3, 5])
>>> x
{1, 2, 3, 5}
>>> x.add(6)
>>> x
{1, 2, 3, 5, 6}
>>> x.remove(5)
>>> x
{1, 2, 3, 6}
>>> 1 in x
True
>>> 4 in x
False
>>> y = set([1, 7, 8, 9])
>>> x | y
{1, 2, 3, 6, 7, 8, 9}
>>> x & y
{1}
>>> x ^ y
{2, 3, 6, 7, 8, 9}
Множество можно создать вызовом set для последовательности — например, для списка . При преобразовании последовательности в множество дубликаты ис-ключаются . После создания множества функцией set вы можете использовать методы add и remove для изменения элементов множества. Ключевое слово in используется для проверки принадлежности объекта к множеству . Оператор | вычисляет объединение двух множеств, оператор & — их пересечение , а опера-тор ^ — их симметрическую разность (то есть элементы, входящие только в одно из двух множеств).
Эти примеры не содержат полной сводки операций с множествами, но и они дают представление о том, как работают множества. За дополнительной информацией обращайтесь к официальной документации Python.
5.8.2. Фиксированные множества
Поскольку множества не являются неизменяемыми и хешируемыми, они не могут быть элементами других множеств. Для решения этой проблемы в Python суще-ствует еще один тип множества frozenset , который ведет себя как множество, но не может изменяться после создания. Поскольку фиксированные множества об-ладают свойствами неизменяемости и хешируемости, они могут быть элементами других множеств:
>>> x = set([1, 2, 3, 1, 3, 5])
>>> z = frozenset(x)
>>> z
frozenset({1, 2, 3, 5})
>>> z.add(6)
Traceback (most recent call last):
File "", line 1, in
z.add(6)
AttributeError: 'frozenset' object has no attribute 'add' >>> x.add(z)
>>> x
{1, 2, 3, 5, frozenset({1, 2, 3, 5})}
БЫСТРАЯ.ПРОВЕРКА:.МНОЖЕСТВА
Если бы вам потребовалось построить множество на базе следующего списка, то сколько элементов будет содержать это множество: [1, 2, 5, 1, 0, 2, 3, 1, (1, 2, 3)] ?
ПРАКТИЧЕСКАЯ.РАБОТА.5:.АНАЛИЗ.СПИСКА В этой лабораторной работе ваша задача — прочитать из файла множество температурных данных (ежемесячные температурные максимумы аэропорта Хитроу с 1948 по 2016 год), а затем вычислить некоторые статистические харак-теристики: максимальной и минимальной температуры, средней температуры
и медианной температуры (то есть температуры, которая будет занимать цен-тральную позицию при сортировке температур).
Температурные данные находятся в файле lab_05.txt в каталоге исходного кода этой главы. Так как чтение файлов еще не рассматривалось, приведу готовый код чтения файла в список:
temperatures = []
with open('lab_05.txt') as infile:
for row in infile:
temperatures.append(int(row.strip())
Определите самую высокую и самую низкую температуру, среднюю и медиан-ную температуру. Вероятно, вам для этого понадобятся функции/методы min() , max() , sum() , len() и sort() .
ДОПОЛНИТЕЛЬНОЕ.ЗАДАНИЕ
Определите, сколько уникальных температур содержит список. Итоги
Списки и кортежи — структуры, воплощающие идею последовательности эле-ментов (например, строки).
Списки похожи на массивы других языков программирования, но они поддер-живают автоматическое изменение размеров, синтаксис сегментов и различные вспомогательные функции.
Кортежи похожи на списки, но они не могут изменяться, поэтому они расходуют меньше памяти и могут использоваться в качестве ключей словаря (глава 7). Множества представляют собой итерируемые коллекции, но они не упорядочены
и не могут содержать повторяющиеся элементы.
6 Строки
Эта глава охватывает следующие темы:
3 Строки как последовательности символов
3 Использование основных операций со строками
3 Вставка специальных символов и экранированных последовательностей 3 Преобразование из объектов в строки
3 Форматирование строк
3 Использование типа byte
Обработка текста — от пользовательского ввода и имен файлов до фрагментов текста — относится к числу типичных задач программирования. В языке Python реализованы мощные инструменты обработки и форматирования текста. В этой главе рассматриваются стандартные строки и строковые операции в Python.
6.1. Строки как последовательности символовВ контексте извлечения символов и подстрок строки могут рассматриваться как последовательности символов, что означает, что с ними можно использовать ин-дексы и синтаксис сегментов:
>>> x = "Hello"
>>> x[0]
'H'
>>> x[-1]
'o'
>>> x[1:]
'ello'
В частности, синтаксис сегментов часто применяется для отсечения символа новой строки в конце строки (обычно только что прочитанной из файла):
>>> x = "Goodbye\n"
>>> x = x[:-1]
>>> x
'Goodbye'
Этот код приведен всего лишь для примера. У строк Python есть другие, более удобные методы отсечения нежелательных символов, а этот пример демонстрирует полезность сегментов.
Чтобы определить, сколько символов содержит строка, можно воспользоваться функцией len — точно так же, как для определения количества элементов в списке: >>> len("Goodbye")
7
Однако строки не являются списками символов. Самое принципиальное разли-чие между строками и символами заключается в том, что, в отличие от списков, строки не могут изменяться . При попытке использовать выражение вида string. append('c') или string[0] = 'H' произойдет ошибка. Из предыдущего примера видно, что для отсечения символа новой строки создается строка, которая являет-ся сегментом предыдущей, а не прямой модификацией предыдущей строки. Это базовое ограничение Python, установленное по соображениям эффективности.
Читать дальшеИнтервал:
Закладка: