Преобразование моего старого комментария для лучшей видимости: для «лучшего способа сделать это» без map
целиком, если ваши входы, как известно, являются ординалами ASCII, обычно гораздо быстрее конвертировать в bytes
и декодировать, a la bytes(list_of_ordinals).decode('ascii')
. Это дает вам str
значений, но если вам нужно list
для изменчивости или тому подобное, вы можете просто преобразовать его (и он все же быстрее). Например, в ipython
микрообъектах, преобразующих 45 входов:
>>> %%timeit -r5 ordinals = list(range(45))
... list(map(chr, ordinals))
...
3.91 µs ± 60.2 ns per loop (mean ± std. dev. of 5 runs, 100000 loops each)
>>> %%timeit -r5 ordinals = list(range(45))
... [*map(chr, ordinals)]
...
3.84 µs ± 219 ns per loop (mean ± std. dev. of 5 runs, 100000 loops each)
>>> %%timeit -r5 ordinals = list(range(45))
... [*bytes(ordinals).decode('ascii')]
...
1.43 µs ± 49.7 ns per loop (mean ± std. dev. of 5 runs, 1000000 loops each)
>>> %%timeit -r5 ordinals = list(range(45))
... bytes(ordinals).decode('ascii')
...
781 ns ± 15.9 ns per loop (mean ± std. dev. of 5 runs, 1000000 loops each)
Если вы оставите его как str
, это займет ~ 20% от времени самых быстрых map
решений; даже конвертируя обратно в список, он по-прежнему составляет менее 40% от самого быстрого решения map
. Массовое преобразование через bytes
и bytes.decode
, тогда объемное преобразование обратно в list
экономит много работы, , но , как отмечено, работает только, если все ваши входы являются ординалами ASCII (или ординалами в некотором байта на конкретное кодирование для каждого символа, например latin-1
).
Я вижу основное преимущество использования XSLT для преобразования данных, и отображаться это пользователю было бы следующим:
Если это должно быть единственным выводом для Ваших данных, и это не находится в формате XML, то XSLT не мог бы быть лучшим решением.
Аналогично, если взаимодействие с пользователем будет требоваться (такие как редактирование данных) затем, то Вы закончите тем, что использовали код бэкенда так или иначе для обработки обновлений, так мог бы доказать одну технологию слишком далеко...
Я всегда находил два основных вопроса при работе с преобразованиями XML:
Во-первых они имеют тенденцию быть довольно медленными, целый XML-файл должен быть проанализирован и проверен, прежде чем можно будет сделать что-либо с ним. Быть XML это является также чрезмерно подробным, и поэтому больше, чем это должно быть.
Во-вторых, дорожная работа преобразований является чем-то вроде боли для кодирования - инструменты пользователя как справка XmlSpy, но это - все еще другая модель к тому, к чему привыкло большинство разработчиков.
В данный момент MVC очень быстр и смотрящий очень перспективный, но действительно страдает от традиционного упадка веб-разработки <%
и %>
молозиво на всем протяжении Вашего кода. Используя преобразования XML избегает, чтобы, но было намного более твердо считать и поддержать.
Я использовал ту технику в прошлом и существуют приложения, где мы используем ее в моем текущем месте занятости. (Я признаю, я не полностью поклонник его, но я буду играть защитника дьявола), Действительно, который является одним из основных advatages, и продвигающий эту идею может быть довольно аккуратным. Вы можете динамично создать xsl на лету и изменить стиль страницы на прихоти. Действительно ли возможно сделать это через другие методы... да, но действительно легко создать программу для изменения xml/xsl документа на лету.
При размышлении об использовании XSL для преобразования одного xml документа другому и отображению его как HTML (который является действительно, что Вы делаете), Вы открываете свою систему, чтобы позволить другим программам получать доступ к данным на странице через XML. Можно сделать это через другие методы, но использование xsl преобразования вынуждает это произвести xml каждый раз.
Я шагал бы слегка с созданием системы этот путь. Вы найдете много падений ямы, которые Вы не ожидаете, и если Вы не знаете xsl действительно действительно хорошо, там будет кривой обучения также.
Jafar Husain предлагает несколько преимуществ в своем предложении по Симпатичному XSL, прежде всего, кэшированию таблицы стилей, чтобы увеличить загрузку страницы и уменьшить размер Ваших данных. Steve Sanderson предложил немного отличающийся подход с помощью JavaScript в качестве контроллера здесь.
Другой, аналогичный подход должен был бы использовать XForms, хотя лучшая поддержка его через библиотеку JavaScript.
Если Вы только собирающийся отображать данные из DB, шаблоны XSL могут быть удобным решением, но если Вы собираетесь обработать взаимодействие с пользователем. Гм... Я не думаю, что это будет удобно в сопровождении вообще.
Проверьте это, если вы хотите использовать XSLT и ASP.MVC