为了账号安全,请及时绑定邮箱和手机立即绑定

Itertools 组合生成产品列表

Itertools 组合生成产品列表

慕虎7371278 2022-03-09 21:23:10
按顺序创建项目属性的组合。您好,我正在尝试按特定顺序创建产品的所有组合。实际问题相当大,所以我在这里简化了,但概念相同。第一次使用 itertools。假设我在卖一件 T 恤。它有 3 种尺寸(s、m、l)、3 种颜色(w、b、g)和 2 种尺寸(修身、宽松)。将这些放在一起构成产品代码,但必须按照尺寸-颜色-适合的顺序。所以组合是:SW-超薄SW-BAGGYSB-超薄SB-BAGGY等等。我的程序需要输出所有代码,应该是 3x3x2 = 18 个组合。import itertoolssize = ['S','M','L']colour = ['W','B','G']fit = ['slim','baggy']options = itertools.product(size, colour,fit,[3])print (options)<itertools.product object at 0x03718E68>[Finished in 0.1s]我看过combinations() 和permutations() 但它们只需要2 个输入参数?不确定从这里去哪里,TIA。
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

将其转换为列表:

print(list(options))

然后它会输出:

[('S', 'W', 'slim'), ('S', 'W', 'baggy'), ('S', 'B', 'slim'), ('S', 'B', 'baggy'), ('S', 'G', 'slim'), ('S', 'G', 'baggy'), ('M', 'W', 'slim'), ('M', 'W', 'baggy'), ('M', 'B', 'slim'), ('M', 'B', 'baggy'), ('M', 'G', 'slim'), ('M', 'G', 'baggy'), ('L', 'W', 'slim'), ('L', 'W', 'baggy'), ('L', 'B', 'slim'), ('L', 'B', 'baggy'), ('L', 'G', 'slim'), ('L', 'G', 'baggy')]

此外,您可以跳过 的最后一个参数[3]

options = itertools.product(size, colour, fit)

它将输出相同,您可以检查长度,它会是18.

如果您需要在它们之间划线:

options = ['-'.join(i) for i in itertools.product(size, colour, fit)]

和输出:

print(options)

将是:

['S-W-slim', 'S-W-baggy', 'S-B-slim', 'S-B-baggy', 'S-G-slim', 'S-G-baggy', 'M-W-slim', 'M-W-baggy', 'M-B-slim', 'M-B-baggy', 'M-G-slim', 'M-G-baggy', 'L-W-slim', 'L-W-baggy', 'L-B-slim', 'L-B-baggy', 'L-G-slim', 'L-G-baggy']



查看完整回答
反对 回复 2022-03-09
  • 1 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号