[D5] Конечно. Если вы используете HSSF, вызовите оценщикAllFormulaCells :
.
Если вы используете HSSF, HSSFFormulaEvaluator.evaluateAllFormulaCells (hssfWorkbook)
Если вы используете XSSF, вызовите оценщикAllFormulaCells :
XSSFFormulaEvaluator.evaluateAllFormulaCells (xssfWorkbook)
Более подробная информация доступна на веб-сайте poi
Зависит от того, хотите ли вы перевернуть список на месте (т. е. изменить список) или нет. Никакой другой реальной разницы.
Часто использование reversed
приводит к более приятному коду.
Не зная реальной статистики о производительности, _list.reverse()
изменяет сам список, тогда как reversed(_list)
возвращает итератор, готовый пересечь список в обратном порядке. Это большая разница.
Если это не проблема, object.reverse()
кажется мне более читаемым, но, возможно, у вас есть определенные требования к скорости. И если reverse()
не принадлежит 80% программного обеспечения, потребляющего ресурсы, я бы не стал беспокоиться (как общее правило).
foo.reverse()
фактически меняет элементы в контейнере. reversed()
фактически ничего не отменяет, он просто возвращает объект, который можно использовать для итерации по элементам контейнера в обратном порядке. Если это то, что вам нужно, оно часто быстрее, чем наоборот.
Кажется, что есть большая разница. Я действительно думал, что все наоборот. Почему переупорядочивание значений в списке происходит быстрее, чем создание нового из итератора?
from decorators import bench
_list = range(10 ** 6)
@ bench
def foo():
list(reversed(_list))
@ bench
def bar():
_list.reverse()
foo()
bar()
print foo.time
print bar.time
0.167278051376 0.0122621059418
blockquote>
list(reversed(_list))
, хотя конструктор list
- это код C, должен проходить через API reverseiterator
, а не просто менять указатели в узком цикле C.
– Karl Knechtel
25 July 2011 в 07:47
listreverseiterator
, то они должны проверить все ... в конечном итоге он становится довольно громоздким и замедляет короткие копии. Кроме того, предполагаемый общий случай для reversed
- это когда вы собираетесь итерации в любом случае и не нужно создавать временное.
– Karl Knechtel
26 July 2011 в 02:00
for i in reversed(_list):...
и _list.reverse();for i in _list:...
, прежний i> немного быстрее.
– Weidenrinde
8 August 2013 в 21:56