我想定义一个可以对输入进行排列的函数。输入是一组列表,例如:

[[(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']

关于python - Python做置换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52014011/

10-09 12:44