Почувствуйте гибкость и элегантность 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.
Спасибо за внимание. Если вам это нравится, не забудьте подписаться на меня, чтобы получать больше отличных статей о программировании и технологиях!
Родственная статья: