1
zst Feb 1, 2019 via Android
可以 flatten 以后直接拼起来?
|
2
momocraft Feb 1, 2019 .reduce(笛卡尔积).map(join).join (然后自己改成 python 语法)
|
3
EulerChen Feb 1, 2019 via Android arr.flat().join('')即可
flat 特性已在 ES2019 正式支持 |
4
sdijeenx Feb 1, 2019 >>> for i in itertools.permutations([['chang'], ['du'], ['zhang', 'chang']] , 3):
... print(i) ... (['chang'], ['du'], ['zhang', 'chang']) (['chang'], ['zhang', 'chang'], ['du']) (['du'], ['chang'], ['zhang', 'chang']) (['du'], ['zhang', 'chang'], ['chang']) (['zhang', 'chang'], ['chang'], ['du']) (['zhang', 'chang'], ['du'], ['chang']) 这样应该满足 LZ 要求=3= |
5
Trim21 Feb 1, 2019 via Android
先 flat 再 join
|
6
Procumbens Feb 1, 2019 import itertools
sample = [['chang'], ['du'], ['zhang', 'chang']] result = list(itertools.product(*sample)) for i in result: print(''.join(i)) |
7
Procumbens Feb 1, 2019 就 2L 说的笛卡尔积是对的,LS 说 flat 的都没了解 LZ 想要什么……
BTW,LS 我的代码最后一行的缩进被吃了👀 |
8
sdijeenx Feb 1, 2019 刚才又写了个偷鸡算法,结果还是 LS 的更好用。
|
9
dushixiang Feb 1, 2019 via iPhone flatMap 成一个数组,然后拼成一个串。
|
10
loading Feb 1, 2019 via Android 楼上都很厉害,我只能发个结帖算法了:
if foo=="[['chang'], ['du'], ['zhang', 'chang']] " then foo="changduchangchangduzhang" |
11
fonlan Feb 1, 2019 via Android 再来个另类的,把 List 转 str 然后用正则取出所有字母即可
|
12
jiejiss Feb 1, 2019 via Android 用 built in 的工具库算笛卡尔积,或者手写 DFS。DFS 递归写着还蛮方便的。之前不知道笛卡尔积的时候就是手写的 DFS
|
13
jiejiss Feb 1, 2019 via Android 或者把大数组当成一个有向图,每个子数组都是一层,每个字符串是一个节点。之后强行在最前面插一个空字符串节点来充当根结点。之后遍历一遍就好了
|
14
wuhaochen999 Feb 1, 2019
cartesian product
|
16
qilishasha Feb 2, 2019
@loading 优秀的程序员很多,有趣的灵魂唯独你一只
|
17
luoleng Feb 15, 2019
''.join(re.findall(r'\w+?', str(your_list)))
|