Почувствуйте гибкость и элегантность Python

Много лет назад, когда я начал изучать Python, я понятия не имел, насколько он гибкий и элегантный. После прочтения и написания большого количества кода мне нравится Python все больше и больше. Потому что даже обычная операция может иметь множество различных реализаций. Хороший пример - слияние списков, и есть как минимум 5 способов сделать это. Эта статья познакомит их и покажет скрытые хитрости.

1. Добавление списков напрямую

Самый простой способ объединить списки в Python - просто использовать напрямую оператор +, как в следующем примере:

Кроме того, оператор += также поддерживает списки. Но здесь все становится интересно. См. Следующий пример:

Приведенный выше код может сбивать с толку, особенно для начинающих Python.

Почему A равно B в первый раз, а во второй - нет?

Этот вопрос выходит за рамки данной статьи. Потому что для ответа на него необходимо объяснить некоторые продвинутые концепции Python, такие как изменчивость и вызов по имени. Если вы не знаете их в данный момент, не беспокойтесь. Просто продолжайте читать, и есть много других способов избежать такой путаницы.

Если вас это действительно интересует, то в другой статье 5 уровней понимания изменчивости объектов Python эти концепции четко объясняются. После прочтения ответ будет очевиден.

2. Расширить один список

Помимо оператора +=, менее запутанным способом объединения списков на месте является использование метода extend().

Кстати, другой метод с именем append() также популярен при работе со списками в Python. Мы должны знать, что с extend() все по-другому.

Посмотрим, что будет, если мы изменим метод из предыдущего примера:

Как показано выше, append() добавляет новые элементы в список, а extend() объединяет список с другим списком.

3. Объединяйте списки с помощью звездочек.

Один из самых красивых приемов Python - использование звездочек. С помощью звездочек мы можем распаковывать списки и складывать их вместе. Это великолепный (возможно, немного самодовольный) способ реализовать слияние списков в Python.

4. Объединение списков с помощью функции цепочки

Функция цепочки в модуле itertools - это особый способ объединить итерации в Python. Он может группировать серию итераций и возвращать объединенный. Поскольку списки также являются повторяемыми, мы можем использовать функцию цепочки и для объединения списков:

5. Объедините списки с помощью функции сокращения.

Python - это благополучие ленивых. Для меня, когда слишком много списков для объединения, писать много + скучно, и я не хочу этого делать. В этом сценарии мы можем использовать функцию высшего порядка - reduce, чтобы снова нас спасти:

Заключение

Операция объединения списков в Python имеет как минимум 5 способов. Необязательно, что мы всегда выбираем разные пути. Однако столкновение с разными стилями кодирования неизбежно при чтении чужой программы. Поэтому стоит потратить время на то, чтобы изучить разные методы одной и той же операции. По крайней мере, от них мы можем почувствовать гибкость и элегантность Python.

Спасибо за внимание. Если вам это нравится, не забудьте подписаться на меня, чтобы получать больше отличных статей о программировании и технологиях!

Родственная статья: