Как Pythonically вывести все значения из списка?

Предположим, у меня есть список, который я не хочу возвращать, но для получения значений. Каков самый питонический способ сделать это?

Вот что я имею в виду. Благодаря некоторому нелазному вычислению я вычислил список ['a', 'b', 'c', 'd'] , но мой код в проекте использует ленивые вычисления, поэтому я хотел бы дать значения из моего вместо того, чтобы возвращать весь список.

В настоящее время я написал следующее:

 List = ['a', 'b', 'c', 'd'] for item in List: yield item 

Но для меня это не похоже на Pythonic.

Ждем некоторых предложений, спасибо.

Бода Сидо.

3 Solutions collect form web for “Как Pythonically вывести все значения из списка?”

Используйте iter для создания итератора списка, например

 return iter(List) 

хотя, если у вас уже есть список, вы можете просто вернуть его, что будет более эффективным.

Поскольку этот вопрос не уточняется; Я дам ответ, который применяется в Python> = 3.3

Если вам нужно только вернуть этот список, сделайте, как предлагает Anurag , но если по какой-то причине рассматриваемая функция действительно должна быть генератором, вы можете делегировать ее другому генератору; предположим, что вы хотите суффикс списка результатов, но только если список сначала исчерпан.

 def foo(): list_ = ['a', 'b', 'c', 'd'] yield from list_ if something: yield this yield that yield something_else 

В версиях python до 3.3 вы не можете использовать этот синтаксис; вам придется использовать код, как в вопросе, с выражением for и single yield в теле.

В качестве альтернативы; вы можете обернуть генераторы в регулярную функцию и вернуть результат chain : у этого также есть преимущество работы в python 2 и 3

 from itertools import chain def foo(): list_ = ['a', 'b', 'c', 'd'] def _foo_suffix(): if something: yield this yield that yield something_else return chain(list_, _foo_suffix()) 

Вы можете построить генератор, сказав

 (x for x in List) 
  • Как получить модуль, из которого вызывается текущая исполняемая функция?
  • Загрузите несколько CSV-файлов с помощью Flask?
  • Проблема округления на Python
  • Функция колба - каждый час
  • Проверьте, изменился ли огромный список в python
  • Есть ли простой способ прервать код статуса 429?
  • Как сделать эти динамически типизированные функции безопасными по типу?
  • Хороший метод интерполяции для смешивания цветов?
  • Python - лучший язык программирования в мире.