从列表中的列表生成组合

2024-10-02 22:30:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Store3Rack1Box1
Store3Rack1Box2
Store3Rack2Box1
Store3Rack2Box2
Store4Rack1Box1
Store4Rack1Box2
Store4Rack2Box1
Store4Rack2Box2

我用itertoolscollections试过了。但最终我不知道如何解决这个问题。解决问题的正确方法是什么?你知道吗


Tags: 字符串列表box2box1store3rack1baselistrack2
2条回答
map("".join,itertools.product(*baselist))

itertools.product正是要走的路。在将列表传递给函数之前,是否尝试将其解包?你知道吗

In [523]: print('\n'.join(map(''.join, itertools.product(*baselist))))
Store3Rack1Box1
Store3Rack1Box2
Store3Rack2Box1
Store3Rack2Box2
Store4Rack1Box1
Store4Rack1Box2
...

我来细说一下:

  1. itertools.product(*baselist)以元组列表的形式生成组合

  2. map(''.join, ...)将每个产品列表连接在一起

  3. '\n'.join(...)将为打印准备输出

相关问题 更多 >