Fra*_*fer 2 python sorting list
为了对元素列表中的列表进行排序,Python中使用了哪些精确规则?这可以表示为'key'或'cmp'函数吗?问题来自于需要考虑两件事:长度和价值在他们的位置.
sorted([
[ 0, 1, 2, 3 ], # 1st line: longer list
[ 0, 1 ], # 2nd line: shorter list
[ 0, 2 ] # 3rd line: suspected last
])
Run Code Online (Sandbox Code Playgroud)
假设第二行在第一行之前排序是否安全?假设第三行总是最后排序是否安全?
注意,这不是关于稳定性!上述具体情况表现如上所述.但是,那里的规则可以被认为是一般性的吗?python在这里适用的准确规则是什么?
依据以下定义Lexicographical Order(感谢Ashniwi):
为了比较不同长度的序列,较短的序列通常在末尾填充足够的"空白"(特殊符号被视为小于A的每个元素).这种比较不同长度序列的方法总是用在字典中.然而,在组合学中,经常使用另一种惯例,其中较短的序列总是小于较长的序列.这种词典顺序的变体有时被称为短序.
Python是否使用' shortlex order '.除了实际例子之外,该假设的证明在哪里?
默认情况下,sorted使用__lt__比较的项的方法.根据Python文档,具有可比元素的列表按字典顺序进行比较.所以,是的,语言保证在较短的字符串中将在较长的字符串之前排序.