从列表中的列表生成组合

时间:2017-08-10 07:22:00

标签: python python-3.x list itertools

我有一个列表,列表中包含baselist = [['Store3', 'Store4', 'Store5'], ['Rack1', 'Rack2'], ['Box1', 'Box2']]这样的组合,并尝试生成一个包含字符串的列表:

Store3Rack1Box1
Store3Rack1Box2
Store3Rack2Box1
Store3Rack2Box2
Store4Rack1Box1
Store4Rack1Box2
Store4Rack2Box1
Store4Rack2Box2

我已经使用itertoolscollections进行了尝试。但最后我不知道如何解决这个问题。什么是解决方案的正确方法?

1 个答案:

答案 0 :(得分:4)

In [523]: print('\n'.join(map(''.join, itertools.product(*baselist)))) Store3Rack1Box1 Store3Rack1Box2 Store3Rack2Box1 Store3Rack2Box2 Store4Rack1Box1 Store4Rack1Box2 ... 正是要走的路。您是否尝试在将列表传递给函数之前解压缩列表?

itertools.product(*baselist)

让我分解一下:

  1. map(''.join, ...)以元组列表的形式生成组合

  2. '\n'.join(...)将每个产品列表加入

  3. adapter准备好您的输出进行打印