# admin.py
class CustomerAdmin(admin.ModelAdmin):
list_display = ('foo', 'number_of_orders')
# models.py
class Order(models.Model):
bar = models.CharField[...]
customer = models.ForeignKey(Customer)
class Customer(models.Model):
foo = models.CharField[...]
def number_of_orders(self):
return u'%s' % Order.objects.filter(customer=self).count()
Run Code Online (Sandbox Code Playgroud)
我如何根据客户的不同对客户进行排序number_of_orders?
admin_order_fieldproperty不能在这里使用,因为它需要一个数据库字段来进行排序.是否有可能,因为Django依赖底层数据库来执行排序?创建一个包含订单数量的聚合字段在这里看起来有点过分.
有趣的是:如果您在浏览器中手动更改URL以对此列进行排序 - 它按预期工作!
这个Ruby代码的行为不像我期望的那样:
# create an array of hashes
sort_me = []
sort_me.push({"value"=>1, "name"=>"a"})
sort_me.push({"value"=>3, "name"=>"c"})
sort_me.push({"value"=>2, "name"=>"b"})
# sort
sort_me.sort_by { |k| k["value"]}
# same order as above!
puts sort_me
Run Code Online (Sandbox Code Playgroud)
我正在寻找按键"值"对哈希数组进行排序,但它们是未分类打印的.
我正在尝试使用基于多个属性的对象对数组进行排序.即,如果两个对象之间的第一个属性相同,则应使用第二个属性来共同映射这两个对象.例如,请考虑以下数组:
var patients = [
[{name: 'John', roomNumber: 1, bedNumber: 1}],
[{name: 'Lisa', roomNumber: 1, bedNumber: 2}],
[{name: 'Chris', roomNumber: 2, bedNumber: 1}],
[{name: 'Omar', roomNumber: 3, bedNumber: 1}]
];
Run Code Online (Sandbox Code Playgroud)
通过roomNumber属性i 对它们进行排序将使用以下代码:
var sortedArray = _.sortBy(patients, function(patient) {
return patient[0].roomNumber;
});
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但我如何继续进行以便'John'和'Lisa'能够正确分类?
我们如何排序HashMap<key, ArrayList>?
我想根据一个值来排序ArrayList.
确定使用带有函数的usort并不是那么复杂
这就是我之前在线性代码中所拥有的
function merchantSort($a,$b){
return ....// stuff;
}
$array = array('..','..','..');
Run Code Online (Sandbox Code Playgroud)
我只是这样做
usort($array,"merchantSort");
Run Code Online (Sandbox Code Playgroud)
现在我们正在升级代码并删除所有全局函数并将它们放在适当的位置.现在所有代码都在一个类中,我无法弄清楚如何使用usort函数使用参数作为对象方法而不是简单函数对数组进行排序
class ClassName {
...
private function merchantSort($a,$b) {
return ...// the sort
}
public function doSomeWork() {
...
$array = $this->someThingThatReturnAnArray();
usort($array,'$this->merchantSort'); // ??? this is the part i can't figure out
...
}
}
Run Code Online (Sandbox Code Playgroud)
问题是如何在usort()函数中调用对象方法
Haskell的网站介绍了一个非常有吸引力的5行快速排序功能,如下所示.
quicksort [] = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
where
lesser = filter (< p) xs
greater = filter (>= p) xs
Run Code Online (Sandbox Code Playgroud)
它们还包括"C中的真正快速排序".
// To sort array a[] of size n: qsort(a,0,n-1)
void qsort(int a[], int lo, int hi)
{
int h, l, p, t;
if (lo < hi) {
l = lo;
h = hi;
p = a[hi];
do {
while ((l < h) && (a[l] <= p))
l …Run Code Online (Sandbox Code Playgroud) 我想在Swift中对字典进行排序.我有一个字典,如:
"A" => Array[]
"Z" => Array[]
"D" => Array[]
Run Code Online (Sandbox Code Playgroud)
我希望它像
"A" => Array[]
"D" => Array[]
"Z" => Array[]
Run Code Online (Sandbox Code Playgroud)
等等
我在SO上尝试了很多解决方案,但没有人为我工作.我正在使用XCode6 Beta 5,并且其中一些正在给出编译器错误,而一些解决方案正在提供异常.所以任何人都可以发布字典排序的工作副本.
sort(mMyClassVector.begin(), mMyClassVector.end(),
[](const MyClass & a, const MyClass & b)
{
return a.mProperty > b.mProperty;
});
Run Code Online (Sandbox Code Playgroud)
我想使用lambda函数来排序自定义类来代替绑定实例方法.但是,上面的代码会产生错误:
错误C2564:'const char*':对内置类型的函数式转换只能接受一个参数
它工作得很好boost::bind(&MyApp::myMethod, this, _1, _2).
我有一个像这样的字符串列表:
['Aden', 'abel']
Run Code Online (Sandbox Code Playgroud)
我想对项目进行排序,不区分大小写.所以我想得到:
['abel', 'Aden']
Run Code Online (Sandbox Code Playgroud)
但我得到的反面是,sorted()或者list.sort()因为大写字母出现在小写之前.
我怎么能忽略这个案子呢?我已经看到了涉及降低所有列表项的小写的解决方案,但我不想更改列表项的大小写.
我有一个文件temp.txt,我想用sortbash中的命令排序.
我希望排序的结果替换原始文件.
这不起作用(我得到一个空文件):
sortx temp.txt > temp.txt
Run Code Online (Sandbox Code Playgroud)
这可以在一行中完成而无需复制到临时文件吗?
编辑:这个-o选项非常酷sort.我sort在我的问题中用作例子.我遇到了与其他命令相同的问题:
uniq temp.txt > temp.txt.
Run Code Online (Sandbox Code Playgroud)
有更好的通用解决方案吗?