在发现惊人之后sorted(),我再次陷入困境.
问题是我有一个表单的字典,string(key) : integer(value)我需要按其整数值的降序排序,但如果两个元素在哪里有相同的值,那么按键的升序.
一个让它更清晰的例子:
d = {'banana':3, 'orange':5, 'apple':5}
out: [('apple', 5), ('orange', 5), ('banana', 3)]
Run Code Online (Sandbox Code Playgroud)
做了一些研究之后我得到了类似的东西:
sorted(d.items(), key=operator.itemgetter(1,0), reverse=True)
out: [('orange', 5), ('apple', 5), ('banana', 3)]
Run Code Online (Sandbox Code Playgroud)
这是因为它对值和键进行了反向排序.我需要钥匙不要反转.
解释图.
两个实体:E1和E2
基数:
- 从E1到E2(通过关系R):( 6,50)
- 从E2到E1(通过关系R):( 3,5)
______ ^ ______
| E1 |___(6,50)____/R\____(3,5)___| E2 |
|______| \ / |______|
v
Run Code Online (Sandbox Code Playgroud)
我应该强制执行基数,但这本书并没有过多地介绍ASSERTION细节.这是否是执行所述基数的正确方法?
CREATE ASSERTION assert
CHECK ( (SELECT COUNT(E1.ID) FROM E1) >= 6 AND
(SELECT COUNT(E1.ID) FROM E1) <= 60 AND
(SELECT COUNT(E2.ID) FROM E2) >= 3 AND
(SELECT COUNT(E2.ID) FROM E2) <= 5 );
Run Code Online (Sandbox Code Playgroud)