Python做排列
我想定义一个可以对输入进行排列的函数。输入是一组列表,如:Python做排列,python,permutation,Python,Permutation,我想定义一个可以对输入进行排列的函数。输入是一组列表,如: [[(u'sss',)], [(u'ssss',), (u'sssssss',)], [(u'121',), (u'222',)]] . 我想把它作为输入。对于排列,我需要在列表的每个文本之间添加文本“title”。因此,函数的输出如下所示: 'sss'+'title'+'ssss'+'title'+'121'+'title' 'sss'+'title'+'ssss'+'title'+'222'+'title' 'sss'+'tit
[[(u'sss',)], [(u'ssss',), (u'sssssss',)], [(u'121',), (u'222',)]] .
我想把它作为输入。对于排列,我需要在列表的每个文本之间添加文本“title”。因此,函数的输出如下所示:
'sss'+'title'+'ssss'+'title'+'121'+'title'
'sss'+'title'+'ssss'+'title'+'222'+'title'
'sss'+'title'+'sssss'+'title'+'121'+'title'
'sss'+'title'+'sssss'+'title'+'222'+'title'
使用
itertools.product
和.join
:
from itertools import product
l = [[(u'sss',)], [(u'ssss',), (u'sssssss',)], [(u'121',), (u'222',)]]
result = [''.join(token + 'title' for [token] in tokens) for tokens in product(*l)]
输出:
['ssstitlesssstitle121title',
'ssstitlesssstitle222title',
'ssstitlessssssstitle121title',
'ssstitlessssssstitle222title']
假设每个
元组
都是一个元组,您可以将它们解压缩并保存一个单独的循环结构,将tup-in-tup-to-token-in-tup
更改为token-for-token,in-tups
(或者token-for[token]in-tups
,如果您担心后面的逗号太小的话)。谢谢您的帮助和建议