2009-11-19 4 views
1

Я слышал, что понимание списка иногда может быть медленным, но я не уверен, почему? Я новичок в Python (исходя из фона C#), и я хотел бы узнать больше о том, когда использовать понимание списка по сравнению с циклом for. Любые идеи, предложения, советы или примеры? Спасибо за помощь.В чем преимущество и недостатки использования понимания списков в Python 2.54-6?

ответ

2

Использовать список понимания (LC), когда это уместно.

Например, если вы передаете любой ПР»Iterable на функцию, выражением генератора (genexpr) часто является более подходящим, и LC расточительно:

"".join([str(n) for n in xrange(10)]) 
# becomes 
"".join(str(n) for n in xrange(10)) 

Или, если вы этого не сделаете нужен полный список, for-loop с инструкцией break будет вашим выбором. Модуль itertools также имеет инструменты, такие как takewhile.

+0

Спасибо за ответ Роджер! Отличный пример. – mkelley33