Если Вы просто надеетесь выполнять итерации по сглаженной версии структуры данных и не нуждаетесь в индексируемой последовательности, рассматриваете itertools.chain и компания .
>>> list_of_menuitems = [['image00', 'image01'], ['image10'], []]
>>> import itertools
>>> chain = itertools.chain(*list_of_menuitems)
>>> print(list(chain))
['image00', 'image01', 'image10']
Это будет работать над чем-либо, что это повторяемо, который должен включать Django, повторяемого QuerySet
с, которая кажется, что Вы используете в вопросе.
Редактирование: Это, вероятно, столь же хорошо как уменьшение так или иначе, потому что уменьшают, будет иметь то же служебное копирование объектов в список, это расширяется. chain
только подвергнется этим (тем же) издержкам, если Вы будете работать list(chain)
в конце.
Метаредактирование: На самом деле, это - меньше служебное, чем предлагаемое решение вопроса, потому что Вы выбрасываете временные списки, которые Вы создаете при расширении оригинала с помощью временного файла.
Редактирование: Как J.F. Sebastian говорит itertools.chain.from_iterable
, избегает распаковки, и необходимо использовать это для предотвращения *
волшебство, но timeit приложение показывает незначительное различие в производительности.
Когда элемент выбран, к нему добавляется класс ui-selected
.
Таким образом, вы можете получить все выбранные элементы с помощью $ (". Ui- selected ")
Это может работать не совсем точно, но я думаю, что идея будет примерно такой:
$('#content_td_account').selectable({
filter: 'li:not(".non_draggable")',
selecting: function(event, ui) {
var p = $(this).parent();
$(".ui-selected").each(obj, function() {
if(obj.parent() == p) {
// get rad
}
});
}
});
это решит вашу проблему:
<script type="text/javascript">
$(function() {
$("#selectable").selectable({
stop: function(){
var result = $("#select-result").empty();
$(".ui-selected", this).each(function(){
var index = $("#selectable li").index(this);
result.append(" #" + (index + 1));
});
}
});
});
</script>
<div class="demo">
<p id="feedback">
You've selected: <span id="select-result">none</span>.
</p>
<ol id="selectable">
<li class="ui-widget-content">Item 1</li>
<li class="ui-widget-content">Item 2</li>
<li class="ui-widget-content">Item 3</li>
<li class="ui-widget-content">Item 4</li>
<li class="ui-widget-content">Item 5</li>
<li class="ui-widget-content">Item 6</li>
</ol>
посетите http://jqueryui.com/demos/selectable/#serialize для получения дополнительной информации