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

基于双列表生成所有排列:支持多对一与空分配

生成满足特定规则的元素分配组合

需求说明:

  • 现有两个列表:names(名称列表)和numbers(数字列表)
  • 需要生成所有可能的分配组合,需满足以下规则:
    • 允许多个数字分配给同一个名称
    • 允许名称不分配任何数字
    • 每个名称对应的数字列表顺序不影响结果(例如[1,2]与[2,1]视为同一组合)

示例1

当names = ['a', 'b'],numbers = [1, 2]时,所有有效组合如下:

[
    {'a': [1], 'b': [2]},
    {'a': [2], 'b': [1]},
    {'a': [1], 'b': []},
    {'a': [2], 'b': []},
    {'a': [1, 2], 'b': []},
    {'a': [], 'b': [1]},
    {'a': [], 'b': [2]},
    {'a': [], 'b': [1, 2]},
]

示例2

当names = ['a', 'b'],numbers = [1,2,3]时,部分有效组合如下(剩余组合可按规则类推):

[
    {'a': [], 'b': []},
    {'a': [1], 'b': [2]},
    {'a': [1], 'b': [3]},
    {'a': [2], 'b': [1]},
    {'a': [2], 'b': [3]},
    {'a': [3], 'b': [1]},
    {'a': [3], 'b': [2]},
    {'a': [], 'b': [1]},
    {'a': [], 'b': [1, 2]},
    {'a': [], 'b': [1, 2, 3]},
    {'a': [1], 'b': []},
    {'a': [1], 'b': [2, 3]},
    {'a': [1, 2], 'b': []},
    {'a': [1, 2], 'b': [3]},
    {'a': [1, 2, 3], 'b': []},
    {'a': [2], 'b': []},
    {'a': [2], 'b': [1, 3]},
    {'a': [2, 3], 'b': []},
    {'a': [2, 3], 'b': [1]},
    # 更多组合以此类推
]

注:已单独创建问题讨论列表顺序有影响的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:09:57