2014-07-25 53 views
3

我有一个包含整数和日期时间对象的元组列表。我想按整数排序。例如:如何通过元组中的第一个元素对元组列表进行排序?

list = (45, datetime.datetime(2014, 7, 25, 13, 20, 8, 332000)), (43, datetime.datetime(2014, 7, 25, 13, 17, 47, 873000)),...

我的代码的那一刻,这是不正确的是:

var sort = {{list|sort(reverse = True)}} 

我看到有在神社属性选项,但无法用它来只按第一个元素排序。

回答

0

稍微哈克,但非常灵活的方法是通过一个函数来进行排序,像这样:

context={ 
      'my_list':[(1, 'bar1'), (8, 'bar2'),(5, 'bar15'), (8, 'bar12'),(3, 'bar8'), (17, 'bar99')], 
      'tup_sort':lambda tuples: sorted(tuples,key=lambda x: x[0]) 
      } 
render_response('templates.html', **context) 
在template.html

然后,您可以使用:

var sort = {{ tup_sort(my_list) }} 
1

我很高兴地发现,您可以轻松地在没有自定义过滤器的情况下执行此操作(请参阅source code)。您可以使用“。”指定多个属性。并使用数字索引来处理数组/索引。

{% for assignment, submission in group|sort(attribute='0.name') %} 
    {{ assignment.name }} 
{% endfor %} 
相关问题