algorithm - 如何根据提供的键值创建唯一组合?
问题描述
假设我有一个结构产品,其属性值数量未知且数量可变。属性值在运行时来自用户。具有属性和值的独特组合的产品形成product_variant。
例如,用户可以创建 4 个属性:
- 大小(5 个值)
- 材料(3 个值)
- 设计(2 个值)
- 颜色(9 个值)
因此将有 5 * 3 * 2 * 9 = 270 个独特的产品变体。但是属性的数量可能是任意的,并且在编译时是未知的。
例子:
product_variant与:
%{
size => m,
material => paper,
design => ds_abc,
colour => red,
}
如何遍历所有属性及其各自的值,从而创建 270 个独特的产品变体?会有什么算法?
不带库函数。
在 C、Python 或伪代码中。
解决方案
如果您必须创建所有独特的产品,我建议使用循环: Python 中的示例:
sizes = {}
materials= {}
designs = {}
colours= {}
products = {}
for size in sizes: //for any size
for meterial in material: //for any material
for design in designs: //for any design
for colour in colours: //for any colour
products.add(make_product(size, material, design, colour)) // create product object and add to collection
确保集合是唯一的 - 使用集合类型set
推荐阅读
- python - 从长文本中删除/替换子字符串的最快方法
- python - 如何编辑 .tcl 文件中的一行?
- redirect - 重定向的最佳方式是什么?
- django - 修改 oscarapi 以将某些端点显示为来自管理端点的公共端点
- c++ - 使用 target_link_libraries 通过 conan-package 链接可用库时出错。手动链接时,它可以工作
- sql - 在去年并非所有账户都存在时计算同比收入
- python - Bazel - Pybind - Pytorch - 未定义符号
- java - 让 ZGC 经常运行
- google-sheets - 将 Twitch 数据导入 Google 电子表格(无法获取 URL)
- javascript - 来自状态活动用户的 discord.js 自动角色