Можно использовать operator.itemgetter
для этого:
import operator
stats = {'a':1000, 'b':3000, 'c': 100}
max(stats.iteritems(), key=operator.itemgetter(1))[0]
И вместо того, чтобы создать новый список в использовании памяти stats.iteritems()
. key
параметр к эти max()
функция является функцией, которая вычисляет ключ, который используется, чтобы определить, как оценить объекты.
Обратите внимание на то, что, если у Вас должна была быть другая пара "ключ-значение" 'd': 3000, который этот метод только возвратит один из два даже при том, что у них обоих есть максимальное значение.
>>> import operator
>>> stats = {'a':1000, 'b':3000, 'c': 100, 'd':3000}
>>> max(stats.iteritems(), key=operator.itemgetter(1))[0]
'b'
При использовании Python3:
>>> max(stats.items(), key=operator.itemgetter(1))[0]
'b'
В вашем обратном вызове ajax:
success: function (data) {
$("html").html($(data).find("html").html());
}
Это заменит весь HTML-контент страницы на тот, который получен из вашего AJAX-запроса. Работает в Chrome ... не уверен насчет IE.
Несмотря на это, я не уверен, почему вы хотите включить раздел <head>
... но вы можете легко изменить вышеприведенное, чтобы отобразить только то, что находится в теле ответа AJAX, и добавить его к Div или даже лайтбокс. Намного лучше.
Я не думаю, что есть способ сделать это. Iframes предназначены для загрузки других страниц, и нет другой песочницы, в которую можно выгрузить отдельную страницу - для этого были созданы фреймы.
Это может быть сложно с используемой платформой, но, вероятно, стоит, чтобы она генерировала разные ошибки для ваших запросов Ajax. Мои страницы Ajax будут отправлять только когда-либо
{"exit": 1, "message": "As in the shell, a non-zero exit is an error and this is why..."}