arr=['one','two','three']
结果必须如下:
onetwo,twothree,onethree
itertools.permutations在这种情况下不起作用。
我们可以通过简单地添加for循环并附加它们来实现这一点,这适用于小型数组但需要时间来处理大型数组。
我想知道有没有办法(like itertools.permutations)
可以实现这个目标?
答案 0 :(得分:4)
也许你想要的是itertools.combinations
?
>>> [''.join(comb) for comb in (itertools.combinations(arr, 2))]
['onetwo', 'onethree', 'twothree']
答案 1 :(得分:1)
两个列表
- 创建一个长度与其他列表相同的列表
- 拉链新列表与其他列表
- 将所有子列表放在一起
- 加入列表
from itertools import permutations
arr1=['name1','name2']
arr2=['name3','name4']
set( map(lambda x: ''.join(x),reduce( lambda x,y:x+y, [ zip(i,arr1) for i in permutations(arr2,len(arr1)) ] ) ) )
output:
set(['name3name1', 'name3name2', 'name4name1', 'name4name2'])