При работе со списками в Python печать каждого элемента часто представляет собой проблему. Обычные методы, такие как использование «\n».join() с помощью map() или перебор списка с помощью цикла for, могут показаться громоздкими. В этой статье исследуется элегантное решение, использующее распаковку для достижения краткого и Pythonic способа печати элементов списка.
В Python 3 оператор print() позволяет распаковывать, обозначаемый звездочкой (*). Эта функция позволяет нам печатать несколько объектов одновременно, «распаковывая» их из одной переменной, эффективно устраняя необходимость в явных циклах или операциях соединения.
myList = [Person("Foo"), Person("Bar")] print(*myList, sep='\n')
При использовании звездочки элементы myList расширяются до отдельных аргументов, что приводит к желаемому выводу:
Foo Bar
Аргумент sep='\n' гарантирует, что каждый элемент будет печататься с новой строки. Этот метод распаковки воплощает философию простоты и краткости Python.
Для пользователей Python 2 оператору print не хватает возможности распаковки. Однако импорт print_function из модуля future позволяет использовать синтаксис печати Python 3. В качестве альтернативы для печати каждого элемента можно использовать простой цикл for:
for p in myList: print p
Хотя и не так кратко, как распаковка, генераторы списков предоставляют мощный инструмент для управления списками. Объединение списков с "\n".join() предлагает удобочитаемую альтернативу распаковке:
print '\n'.join(str(p) for p in myList)
Этот подход преобразует каждый элемент списка в строковое представление с помощью str() и объединяет их с помощью символов новой строки. Хотя это и не так лаконично, как распаковка, понимание списков остается эффективным и универсальным методом работы со списками.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3