Sort
更多信息
- Sort 在缺省下根据数值大小对整数、有理数和近似实数进行排序.
- Sort 根据复数的实部对其进行排序,如果出现平局,则按其虚部的绝对值对其进行排序. 如果平局仍然存在,则按其虚部排序.
- 对于符号,Sort 根据它们的名称排序,如果相等,则根据上下文排序.
- 对于表达式排序,Sort 首先将较短表达式的放在前面,然后按深度优先的方式比较子集.
- 特别的,Sort 可以处理幂和积,按照它们对应的多项式的项排序.
- Sort 按词典的顺序排序字符串,先小写再大写. Sort 首先显示字目,然后依次是脚本、哥特体、双重打印字体、希腊字母和希伯来文. 数学运算符按递减的顺序排列.
- Sort[list,p] 应用排序函数 p 配对 list 中的元素,来决定它们是否有序. 默认函数 p 是 Order.
- 排序函数 p 应用于一对元素 e1,e2 可能返回 1、0、-1 或 True、False. p[e1,e2] 的值被诠释为:
-
1 e1 在 e2 之前 0 e1 与 e2 应被视为相同 -1 e1 在 e2 之后 True e1 和 e2 是有序的 False e1 和 e2 是无序的 - 如果排序函数 p 返回的值 p[e1,e2] 不同于前面的值,则将 e1 和 e2 有效地视为有序.
- Sort 可以用于任何头部的表达式,不仅仅是 List.
范例
打开所有单元 关闭所有单元基本范例 (4)
Sort[{d, b, c, a}]Sort[{"cat", "fish", "catfish", "Cat"}]Sort[{Pi, E, 2, 3, 1, Sqrt[2]}]Sort[{Pi, E, 2, 3, 1, Sqrt[2]}, Less]Sort[{{a, 2}, {c, 1}, {d, 3}}, #1[[2]] < #2[[2]]&]范围 (10)
输入数据 (5)
Sort[{y, x ^ 2, x + y, y ^ 3}]Sort[f[b, a, c]]根据值对 Association 中的元素进行排序:
Sort[<|a -> 4, b -> 1, c -> 3, d -> 2, e -> 2|>]通过对第一列进行排序来对 Tabular 对象的行进行排序:
Tabular[{{3, 2}, {1, 4}, {2, -3}}, {"a", "b"}]Sort[%]按第一个元素对 Dataset 对象的行进行排序:
Dataset[{<|"a" -> 3, "b" -> 2|>, <|"a" -> 1, "b" -> 4|>, <|"a" -> 2, "b" -> -3|>}]Sort[%]排序函数 (5)
使用 Greater 作为排序函数进行排序:
Sort[<|a -> 4, b -> 1, c -> 3, d -> 2, e -> 2|>, Greater]使用 GreaterEqual 使相等元素的相对顺序保持不变:
Sort[<|a -> 4, b -> 1, c -> 3, d -> 2, e -> 2|>, GreaterEqual]使用 NumericalOrder 允许复数和类似数字的表达式:
Sort[{1 + I, 3, 2 - I}, NumericalOrder]Sort[{Yesterday, Tomorrow, Today}, NumericalOrder]使用 AlphabeticOrder 根据特定语言的规则进行排序:
words = {"čeština", "hebrejčina", "hebrejčina", "chorvátčina"};Sort[words, AlphabeticOrder["Slovak"]]Sort[words, AlphabeticOrder["Serbian"]]p[_ ? NumberQ, _Symbol] := -1
p[_Symbol, _ ? NumberQ] := 1
p[_Symbol, _Symbol] := 0
p[x_ ? NumberQ, y_ ? NumberQ] := x ≤ ySort[{x, 1, z, 5, a, 2, e}, p]Sort[{Entity["City", {"Denver", "Colorado", "UnitedStates"}], Entity["City", {"Chicago", "Illinois", "UnitedStates"}], Entity["City", {"LosAngeles", "California", "UnitedStates"}]}, Sign[#2["Elevation"] - #1["Elevation"]]&]应用 (5)
Sort[{-11, 10, 2, 1, -4}]Sort[{-11, 10, 2, 1, -4}, Abs[#1] < Abs[#2]&]Sort[Join[Log[Range[10]], Sqrt[Range[10]]]]Sort[Join[Log[Range[10]], Sqrt[Range[10]]], Less]Sort[{"aa", "abb", "ba", "b", "aaa"}]Sort[{"aa", "abb", "ba", "b", "aaa"}, StringLength[#1] < StringLength[#2]&]RandomInteger[{-5, 5}, {10, 3}]Sort[%, Norm[#1] < Norm[#2]&]Sort[{I, 1 + I, 1 - I, 2 + 3I}, Re[#1] < Re[#2]&]属性和关系 (8)
Sort[{a + b + c, a + b, a + c}]Sort[{5.6, 5, 2.3, -1, 4 / 3, 1}]Sort[{a + b + c, a + b, a + c}, OrderedQ[{#2, #1}]&]无序函数的排序方式和 Sort 相同:
(a + b + c)(a + b)(a + c)Sort[{4, 1, 3, 2}, (Print[{#1, #2}];#1 > #2)&]Reap[Sort[{4, 1, 3, 2}, (Sow[{#1, #2}];#1 > #2)&]]Sort[list] 等价于 list[[Ordering[list]]]:
list = RandomInteger[10, 10]Sort[list]list[[Ordering[list]]]Sort[list] 等价于 SortBy[list,Identity]:
list = RandomInteger[10, 10]Sort[list]SortBy[list, Identity]可能存在的问题 (2)
Sort[{∞, Sqrt[2], 1, 2, -∞, 1 / Sqrt[2]}]该排序根据表达式的 FullForm 遵循其一般规则:
%//FullFormSort[{∞, Sqrt[2], 1, 2, -∞, 1 / Sqrt[2]}, NumericalOrder]Sort[{4, 1, 3, 7, 9}, # > 3&]Sort[{4, 3, 1, 7, 9}, # > 3&]历史
1988年引入 (1.0) | 在以下年份被更新:2017 (11.1)
文本
Wolfram Research (1988),Sort,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Sort.html (更新于 2017 年).
CMS
Wolfram 语言. 1988. "Sort." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2017. https://reference.wolfram.com/language/ref/Sort.html.
APA
Wolfram 语言. (1988). Sort. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Sort.html 年
BibTeX
@misc{reference.wolfram_2026_sort, author="Wolfram Research", title="{Sort}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/Sort.html}", note=[Accessed: 31-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_sort, organization={Wolfram Research}, title={Sort}, year={2017}, url={https://reference.wolfram.com/language/ref/Sort.html}, note=[Accessed: 31-October-2026]}