来自数据的字符串组合

Combinations of strings from data

所以,我们有数据。一点大数据。 例如。

0 -> [a, b]
1 -> c
2 -> [d, e, f]
3 -> [g, h]
4 -> k
5 -> l

我们需要合并每个值。对于此示例,输出将有很多变体。

acdgkl
acdhkl
acegkl
acehkl
acfgkl
acfhkl
bcdgkl
bcdhkl
bcegkl
bcehkl
bcfgkl
bcfhkl

问题:这个组合值的动作过程叫什么?) 以及如何实现它:) 谢谢。

相信您正在寻找Permutation and Combination。 尝试使用嵌套循环。

变成这样的过程

[['a','b'], ['c'], ['d', 'e', 'f'], ['g', 'h'], ['k'], ['l']]

进入序列

[['a','c','d','g','k','l'],
 ['a','c','d','h','k','l'],
 ...

被称为取Cartesian product。当结果是字符串时,我认为还没有连接结果的特定过程的名称。 (另请注意,我已将每个术语设为一个列表,即使它是一个元素的列表,而不是在列表 (['a','b']) 和标量 ('c') 之间交替。

这是一个很常见的过程,许多语言都有内置支持,例如Python:

>>> from itertools import product
>>> source = [['a','b'], ['c'], ['d', 'e', 'f'], ['g', 'h'], ['k'], ['l']]
>>> outputs = product(*source)
>>> for out in outputs:
...     print(out)
...     
('a', 'c', 'd', 'g', 'k', 'l')
('a', 'c', 'd', 'h', 'k', 'l')
('a', 'c', 'e', 'g', 'k', 'l')
('a', 'c', 'e', 'h', 'k', 'l')
('a', 'c', 'f', 'g', 'k', 'l')
('a', 'c', 'f', 'h', 'k', 'l')
('b', 'c', 'd', 'g', 'k', 'l')
('b', 'c', 'd', 'h', 'k', 'l')
('b', 'c', 'e', 'g', 'k', 'l')
('b', 'c', 'e', 'h', 'k', 'l')
('b', 'c', 'f', 'g', 'k', 'l')
('b', 'c', 'f', 'h', 'k', 'l')

即使您使用的语言本身不支持此功能,实施起来也很简单。

我无法评论DSM的评论(因为我没有足够的积分)

但是如果您想连接列表并将它们打印为字符串,请使用

print ''.join(out)    

而不是 打印