You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按双列对Item序列排序的技术问询及结果验证

分析双列排序规则及验证疑似排序结果

首先,我们把原始数据和疑似正确的排序列表整理成清晰的表格,方便对比分析:

原始列表

Item#ToFrom
A100000000803441
A200803441000000
A300000000542032
A400181061000000
A500000000181061
A600542032000000

疑似正确的排序列表

Item#ToFrom
A100000000803441
A200803441000000
A500000000181061
A400181061000000
A300000000542032
A600542032000000

排序规则拆解

通过对比两组数据,我们可以明确这套排序是基于“配对分组+组内顺序+组间排序”的复合规则,具体如下:

  1. 第一步:配对分组
    所有记录可以被分成3个独立的配对组,每组由两条记录组成:一条是To=000000且From=XXX的“出发记录”,另一条是To=XXX且From=000000的“返回记录”(XXX为非0的相同编号):

    • 组1:A100(出发)、A200(返回)—— 共享编号803441
    • 组2:A500(出发)、A400(返回)—— 共享编号181061
    • 组3:A300(出发)、A600(返回)—— 共享编号542032
  2. 第二步:组内顺序
    每个组内固定是**“出发记录”在前,“返回记录”在后**,也就是To=000000的记录排在对应From=000000的记录前面。

  3. 第三步:组间排序
    组与组之间的排序依据是每组“返回记录”的Item#升序:

    • 组1的返回记录Item#是A200(数字部分200)
    • 组2的返回记录Item#是A400(数字部分400)
    • 组3的返回记录Item#是A600(数字部分600)
      按照200 < 400 < 600的升序,组的顺序就是组1 → 组2 → 组3,这和疑似正确列表的顺序完全匹配。

对疑似排序结果的验证

从上述规则来看,你提供的疑似正确排序列表完全符合这套复合排序规则,是正确的排序结果。

如果要用代码实现这个排序逻辑(以Python为例),可以参考以下思路:

# 原始数据
data = [
    {"Item#": "A100", "To": "000000", "From": "803441"},
    {"Item#": "A200", "To": "803441", "From": "000000"},
    {"Item#": "A300", "To": "000000", "From": "542032"},
    {"Item#": "A400", "To": "181061", "From": "000000"},
    {"Item#": "A500", "To": "000000", "From": "181061"},
    {"Item#": "A600", "To": "542032", "From": "000000"},
]

# 先构建配对映射:非0编号对应的返回记录Item#
pair_map = {}
for item in data:
    if item["From"] == "000000":
        # 返回记录,记录其To编号和Item#
        pair_map[item["To"]] = item["Item#"]

# 排序逻辑:先按配对的返回记录Item#升序,再按是否是出发记录排序(出发在前)
sorted_data = sorted(
    data,
    key=lambda x: (
        pair_map.get(x["From"] if x["To"] == "000000" else x["To"], ""),
        0 if x["To"] == "000000" else 1
    )
)

# 输出结果
for item in sorted_data:
    print(f"{item['Item#']} | {item['To']} | {item['From']}")

内容的提问来源于stack exchange,提问作者David Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:03:27