На самом деле не было бы никаких циклов, чтобы игнорировать возвращаемый аргумент, нет, кроме тех, которые тривиально сохранены, отметив, что нет смысла связывать имя с возвращенным объектом, который не используется.
Python не выполняет никакой функции встраивания или перекрестной оптимизации. Это не касается ниши ни малейшей. И это не должно, так как это может поставить под угрозу многие вещи, на которых хорошо работает python. Многие функциональные возможности python зависят от простоты его дизайна.
То же самое для вашего примера распаковки списка. Легко думать о синтаксическом сахаре, чтобы python выбирал последний и первый элемент списка, учитывая этот синтаксис. Но нет никакого способа, оставаясь в пределах определяющих ограничений python, чтобы фактически не построить весь список в первую очередь. Кто скажет, что для построения списка нет соответствующих побочных эффектов? Python, как язык, безусловно, не гарантирует вам такую вещь. Являясь динамическим языком, python даже не имеет ни малейшего понятия, ни пытается позаботиться о том, что foo может вернуть список до момента, когда он действительно это сделает.
И вернет ли он список? Что делать, если вы отскакиваете идентификатор списка?
хорошо, умный компилятор мог выяснить, что переменная '_' не используется. –
Неужели кто-нибудь заботится о тех крошечных дополнительных циклах? если да, то зачем вы используете python для этой задачи? –
@KarolyHorvath Возможно, я ошибаюсь в связи с накладными расходами на копирование. –