免费列表排序器 - 在线按字母和数字排序
按字母顺序(A到Z)或按数字大小对任意列表进行排序,支持升序和降序两种方式自由切换,可一键删除重复项,并将排序结果导出为纯文本或JSON格式文件。免费在线工具,浏览器端即时处理无需安装任何软件,适用于整理姓名清单、数字序列、代码数据以及各类需要排序去重的文本列表整理工作。
列表排序器
已排序列表
可视化
文档
列表排序器
列表排序器是一种工具,可接收由指定字符分隔的一段文本项目,并将其排序。它可以按字母或数字对列表排序,删除重复项,并以纯文本或 JSON 格式输出结果。
如何在线对列表排序
- 在输入框中输入或粘贴列表。
- 设置分隔符,即分隔相邻项目的字符。默认值为逗号。
- 选择排序类型:单词选择按字母排序,数字选择按数值排序。
- 选择排序顺序:升序或降序。
- 如果应删除重复项目,请开启“删除重复项”。
- 选择输出格式:文本或 JSON。
- 复制结果。
字母排序的工作方式
字母模式将项目作为文本进行比较,使用符合区域设置的字符串比较,而不是直接比较字符编码。它会先按字母对单词分组,因此能正确处理带重音符号的字符:“Zürich”和“SÃO Paulo”会按熟悉该语言的读者所预期的位置排序。
大小写被视为次要规则。只有大小写不同的两个单词(如“apple”和“Apple”)会被归在一起,并将小写形式放在前面。以这种方式排序的数字会按文本逐位比较,因此“10”会排在“2”之前:会先比较字符“1”,而不会比较到“2”。
示例。 输入 banana, apple, cherry, apple,分隔符为 ,,按升序排列并删除重复项。
- 重复的“apple”会被删除,只剩三个项目。
- 输出:
apple,banana,cherry
每个项目都会在排序前去除首尾空格,排序后的项目会使用输入中完全相同的分隔符连接。输入中逗号后的空格不会出现在输出中。
数值排序的工作方式
数值模式会将每个项目转换为数字并直接比较数值,因此“2”会排在“10”之前。列表中的每个项目都会先经过检查。如果哪怕只有一个项目无法读取为数字,工具也不会对列表进行排序,而是显示错误且不生成结果。即使长列表中只有一个项目无效,也同样如此。
示例。 输入 10, 2, 33, 4,数值模式,分隔符为 ,。
- 升序输出:
2,4,10,33 - 降序输出:
33,10,4,2
错误情况示例。 输入 10, apple, 3,数值模式。
- 结果:不返回列表。由于“apple”无法转换为数字,工具会报告“无效的数值输入”。
要对混合字母和数字的列表排序,请改用字母模式。
删除重复项
“删除重复项”选项会保留每个项目第一次出现的内容,并丢弃其余重复项。它会将项目作为完全相同的文本进行比较,因此区分大小写:“Apple”和“apple”会被视为不同的项目,除非先将列表转换为小写,否则两者都会保留。
分隔符
分隔符告诉工具一个项目在哪里结束、下一个项目在哪里开始。分隔符不限于单个字符,可以使用任意文本。常见选择包括:
- 逗号(
,),用于从电子表格或 CSV 文件复制的数据 - 分号(
;),用于本身已包含逗号的列表 - 单个空格,用于较短的单词列表
- 例如
|这样的符号,且该符号不会出现在项目内部
分隔符框只能输入一行文本。浏览器会从单行输入框中去除换行符,因此这里不能使用换行符作为分隔符。要对每行一个项目的列表排序,请先在文本编辑器中将换行符替换为逗号,再粘贴结果。
分隔符框留空会显示“分隔符无效。请检查输入。”,并且不会生成排序后的列表。如果输出看起来是一个很长的项目,而不是列表,通常是因为分隔符与输入内容不匹配。
JSON 输出
选择 JSON 输出后,排序后的列表会被封装在 JSON 数组中,并以每行一个项目、缩进两个空格的形式显示:
1[
2 "apple",
3 "banana",
4 "cherry"
5]
6每个条目都会写成带引号的字符串,即使在数值模式下也是如此。将 10, 2 按数值排序并导出为 JSON 时,得到的是字符串 "2" 和 "10",而不是数字 2 和 10。需要实际数值的程序必须在导入后将这些字符串转换为数字。
柱状图
工具会在排序后的输出下方绘制结果图。在字母模式下,图表是带编号的排序项目列表。在数值模式下,每个项目都有一个柱,其长度表示该值在坐标轴范围中的占比。坐标轴始终从零开始:范围下限是零与最小值中的较小者,上限是零与最大值中的较大者。零值位于基线处。最大值为正数时,其柱会延伸至 100%。负值会产生较短的柱,而不是较长的柱,因此当列表中的所有值都为负数时,没有任何柱会达到满长。如果所有值都是零,所有柱都会显示为 0%。
列表排序器的用途
字母排序适用于联系人姓名、产品代码和参考文献条目;许多引文格式要求参考文献按作者姓氏排序。数值排序适用于价格、分数和测量值。删除重复项有助于清理从多个来源复制数据后形成的列表,例如合并的电子表格或导出的联系人列表。
对于非常大的数据集,带索引列的数据库或电子表格的内置排序功能通常比基于浏览器的工具性能更好。如果需要在自动化流程中反复排序同一个文件,命令行工具或脚本比网页更合适。
关于排序算法的简要说明
对短列表进行排序和对包含一百万个项目的列表进行排序,归根结底都是同一个思路:比较项目对并按顺序排列。高效算法无需比较每一对可能的项目。JavaScript 内置的 Array.prototype.sort 是许多基于浏览器的排序工具所依赖的功能,它在 Chrome 和 Node.js 背后的 V8 引擎中使用 Timsort。Timsort 是归并排序和插入排序的混合算法,由 Tim Peters 于 2002 年为 Python 编写。其他浏览器使用不同的稳定排序算法;JavaScript 规范要求排序结果是稳定的,也就是说,比较结果相等的项目会保持原有的相对顺序,但规范并未要求使用某一种特定算法。
常见问题
如何在线按字母顺序对列表排序? 将列表粘贴到输入框中,将排序类型设为“字母”,然后选择升序(A 到 Z)或降序(Z 到 A)。排序后的列表会立即显示。
为什么我的数值排序失败了? 如果任何一个项目不是有效数字,数值模式会拒绝整个列表,而不是跳过错误项目。请检查列表中是否有多余字母、货币符号或额外空格,并将其删除;如果列表本来就包含文本,请切换到字母模式。
排序时工具会将大写字母和小写字母视为相同吗? 就排序而言,是的:“apple”和“Apple”会被归在相邻位置。就删除重复项而言,不会:除非先将列表统一转换为同一种大小写,否则它们会被视为两个不同的项目。
应使用什么分隔符? 使用与列表实际分隔方式相匹配的任意字符或短字符串:CSV 格式数据使用逗号;如果项目内部已经包含逗号,则使用分号;单个单词之间则使用空格。分隔符框中不能输入换行符,因此按行分隔的列表需要先将换行符替换为逗号。
可以将排序后的列表导出为 JSON 吗? 可以。JSON 输出是按排序顺序排列的带引号字符串数组,以每行一个项目、缩进两个空格的形式显示。对 10, 2, 4 进行数值排序后,导出的是字符串 "2"、"4" 和 "10",而不是原生 JSON 数字。
我可以排序的项目数量有限制吗? 该工具在浏览器中运行,因此非常大的列表(数万项或更多)可能会减慢运行速度或占用大量可用内存,具体取决于设备。对于这种规模,数据库或脚本通常是更可靠的选择。