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

基于概率生成的拣货列表高级过滤:Python实现方案问询

解决通道重复、保留最大货位项的Python实现

背景回顾

嘿,这个需求用Python处理其实很高效,咱们可以用内置数据结构做一键式筛选,比Excel的分步操作更简洁直接~先理下你的场景:你已经用random.choices生成了带概率的20个货品列表,每个货品包含名称、通道(aisle)和货位(slot),现在要每个通道只留货位数值最大的那一项。

原始代码与输出

你生成拣货列表的代码是:

import random
import xlwings as xw
from collections import Counter

wb = xw.Book('Test.xlsx')
sheet = xw.sheets.active
SKUs = sheet.range('A2:C693').value
list_of_prob = sheet.range('D2:D693').value
list_of_prob = [float(i) for i in list_of_prob]

SKUs = random.choices(SKUs, weights=list_of_prob, k=20)
for item in zip(SKUs):
    print(item)

生成的原始输出(简化为通道和货位部分):

([10.0, 1.0],)
([6.0, 15.0],)
([8.0, 17.0],)
([7.0, 2.0],)
([5.0, 5.0],)
([2.0, 2.0],)
([1.0, 6.0],)
([6.0, 9.0],)
([3.0, 2.0],)
([4.0, 2.0],)
([5.0, 4.0],)
([9.0, 4.0],)
([1.0, 4.0],)
([1.0, 1.0],)
([2.0, 2.0],)
([3.0, 1.0],)
([9.0, 3.0],)
([5.0, 6.0],)
([1.0, 1.0],)
([7.0, 4.0],)

你期望转换后的结果:

([10.0, 1.0],)
([6.0, 15.0],)
([8.0, 17.0],)
([2.0, 2.0],)
([1.0, 6.0],)
([3.0, 2.0],)
([4.0, 2.0],)
([9.0, 4.0],)
([5.0, 6.0],)
([7.0, 4.0],)

最优Python实现方案

用字典来处理是最高效的方式,因为字典的键具有唯一性,我们可以把通道(aisle)作为键,值保存当前该通道下货位最大的货品项。遍历一次列表就能完成筛选,时间复杂度是O(n),比先去重再查最大值的步骤更高效。

具体代码实现

在你生成SKUs列表之后,添加这段代码即可:

# 初始化空字典:键为通道号,值为对应最大货位的货品项
aisle_max_slot = {}

for item in SKUs:
    # 提取当前货品的通道和货位(item结构:[名称, aisle, slot])
    current_aisle = item[1]
    current_slot = item[2]
    
    # 逻辑:如果通道不在字典里,或当前货位比字典中已存的更大,就更新
    if current_aisle not in aisle_max_slot or current_slot > aisle_max_slot[current_aisle][2]:
        aisle_max_slot[current_aisle] = item

# 提取字典中的所有值,就是筛选后的最终列表
filtered_skus = list(aisle_max_slot.values())

# 按你原来的格式打印结果
for item in zip(filtered_skus):
    print(item)

代码解释

  1. 字典aisle_max_slot自动帮我们完成通道去重:同一个通道只会保留货位最大的项,后续遇到同通道的小货位项会直接跳过。
  2. 一次遍历完成筛选,不需要额外的去重、排序操作,性能拉满。
  3. Python 3.7+的普通字典默认保留插入顺序,所以最终列表会保持通道第一次出现的顺序,同时保证每个通道都是最大货位的货品。

补充说明

如果你的SKUs列表里的项是元组而非列表,代码逻辑完全一致,只需要保持索引写法统一即可。这种方法不需要额外依赖库,用Python内置结构就能搞定,适合集成到你的拣货程序里做批量自动化处理。

内容的提问来源于stack exchange,提问作者Karim.C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:27:02