Наоми Седер - Python. Экспресс-курс

Здесь есть возможность читать онлайн «Наоми Седер - Python. Экспресс-курс» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 2019, ISBN: 2019, Издательство: Питер, Жанр: Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Python. Экспресс-курс: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Python. Экспресс-курс»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Вы уже умеете кодить на одном или нескольких языках программирования? Тогда настала пора пройти экспресс-курс Python. Впервые на русском языке выходит новое издание одной из самых популярных книг издательства Manning. С помощью этой книги вы можете быстро перейти от основ к управлению и структурам данных, чтобы создавать, тестировать и развертывать полноценные приложения.
Наоми Седер рассказывает не только об основных особенностях языка Python, но и его объектно-ориентированных возможностях, которые появились в Python 3. Данное издание учитывает все изменения, которые произошли с языком за последние 5 лет, а последние 5 глав рассказывают о работе с большими данными.

Python. Экспресс-курс — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Python. Экспресс-курс», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

>>> x.sort()

>>> x

['Enchanting', 'Is', 'Life']

Метод sort может отсортировать почти всё, потому что Python умеет сравнивать почти всё. Однако при сортировке возникает одна загвоздка: ключевой метод, ис-пользуемый по умолчанию при сортировке, требует, чтобы все элементы списка имели совместимые типы. Это означает, что при использовании метода sort для списка, содержащего как числа, так и строки, будет выдано исключение: >>> x = [1, 2, 'hello', 3]

>>> x.sort()

Traceback (most recent call last):

File "", line 1, in

TypeError: '<' not supported between instances of 'str' and 'int' И наоборот, можно спокойно отсортировать список списков: >>> x = [[3, 5], [2, 9], [2, 3], [4, 1], [3, 2]]

>>> x.sort()

>>> x

[[2, 3], [2, 9], [3, 2], [3, 5], [4, 1]]

В соответствии со встроенными правилами сравнения сложных объектов в Python субсписки сортируются сначала по возрастанию первого элемента, а затем по воз-растанию второго элемента.

Метод sort обладает еще большей гибкостью; он поддерживает необязательный параметр reverse . При reverse=True сортировка производится в обратном порядке, и вы можете задать собственную ключевую функцию, определяющую способ сор-тировки элементов списка.

5.4.1. Нестандартная сортировка

Чтобы применить пользовательский критерий сортировки, необходимо уметь опре-делять функции — тема, которая пока еще не рассматривалась. В этом разделе мы также обсудим тот факт, что len(string) возвращает количество символов в строке. Операции со строками более подробно рассмотрены в главе 6. По умолчанию sort использует для определения порядка встроенные функции срав-нения Python; в большинстве случаев этого достаточно. Однако время от времени требуется отсортировать список способом, отличным от порядка по умолчанию. До-пустим, вы хотите отсортировать список слов по количеству символов в слове, а не по критерию лексикографической сортировки, который обычно применяет Python. Для этого следует написать функцию, которая возвращает значение (или ключ) для проведения сортировки, и использовать его с методом sort . В контексте sort эта функция должна получать один аргумент и возвращать ключ или значение, используемое функцией sort .

Чтобы строки упорядочивались по количеству символов, ключевая функция может иметь вид

def compare_num_of_chars(string1):

return len(string1)

Эта ключевая функция тривиальна — она передает методу сортировки длину строк (вместо самих строк).

После того как вы определите ключевую функцию, остается передать ее методу sort с именем key . Так как функции являются объектами Python, они могут передаваться функциям как любые другие объекты Python. Ниже приведена небольшая програм-ма, демонстрирующая различия между стандартной и нестандартной сортировкой: >>> def compare_num_of_chars(string1):

... return len(string1)

>>> word_list = ['Python', 'is', 'better', 'than', 'C'] >>> word_list.sort()

>>> print(word_list)

['C', 'Python', 'better', 'is', 'than']

>>> word_list = ['Python', 'is', 'better', 'than', 'C'] >>> word_list.sort(key=compare_num_of_chars)

>>> print(word_list)

['C', 'is', 'than', 'Python', 'better']

Первый список упорядочен в лексикографическом порядке (верхний регистр предшествует нижнему), а второй список упорядочен по возрастанию количества символов.

Нестандартная сортировка чрезвычайно полезна, но она может быть медленнее стандартной. Обычно эффект минимален, и все же с особенно сложными ключевы-ми функциями он становится заметным, особенно если в сортировке задействованы сотни тысяч и миллионы элементов.

В частности, нестандартной сортировки стоит избегать при упорядочении списка по убыванию (а не по возрастанию). В этом случае параметру reverse метода sort задается значение True . Если по какой-либо причине это решение оказы-вается неприемлемым, все равно будет лучше отсортировать список обычным способом, а затем воспользоваться методом reverse для перестановки элементов полученного списка в обратном порядке. Эти две операции — стандартная со-ртировка и обратная перестановка — будут выполняться намного быстрее, чем нестандартная сортировка.

5.4.2. Функция sorted()

У списков имеется встроенный метод для сортировки, но у других итерируемых типов Python (например, у ключей словаря) метода sort нет. У Python также име-ется встроенная функция sorted() , которая возвращает отсортированный список, построенная на базе любого итерируемого типа. Функция sorted() использует те же параметры key и reverse , что и метод sort :

>>> x = (4, 3, 1, 2)

>>> y = sorted(x)

>>> y

[1, 2, 3, 4]

>>> z = sorted(x, reverse=True)

>>> z

[4, 3, 2, 1]

ПОПРОБУЙТЕ.САМИ:.СОРТИРОВКА.СПИСКОВ Имеется список, каждый элемент которого также является списком: [[1, 2, 3], [2, 1, 3], [4, 0, 1]] . Допустим, вы хотите отсортировать этот список по второму элементу каждого списка, чтобы получить результат [[4, 0, 1], [2, 1, 3], [1, 2, 3]] . Какую функцию вы бы написали для передачи в параметре key метода sort() ?

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Python. Экспресс-курс»

Представляем Вашему вниманию похожие книги на «Python. Экспресс-курс» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Python. Экспресс-курс»

Обсуждение, отзывы о книге «Python. Экспресс-курс» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x