要根据每个单词的长度按照后代顺序对d
进行排序,我们在python中有这些实现:
d = ["ba","ab","a","b"]
d.sort(key = lambda s: (-len(s), s)) # ['ab', 'ba', 'a', 'b']
d.sort(key = lambda s: -len(s)) # ['ba', 'ab', 'a', 'b']
d.sort(key = lambda s: len(s), reverse = True) # ['ba', 'ab', 'a', 'b']
这是我的问题:
s
是什么意思? 答案 0 :(得分:5)
在第一种情况下,排序优先级基于2元组中的元素,元组中的第一个元素具有更高的优先级。
您的玩具代码中的第二个元素与ab
和ba
的长度绑定为值2的情况相同。对于容器中的任何两个项目,仅在第一个排序标准导致平局时才比较第二个元素。
此外,如果关系存在或未被打破(使用第二个元素或通常与其他两个示例一样),则项目按其原始顺序排列优先顺序; Timsort稳定。
另外值得注意的是,2元组排序对第一个元组项进行数字排序,对第二个元组进行词典排序。