数据字符串的组合

时间:2015-01-03 15:43:33

标签: combinations

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

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

Quetion:这个组合值的动作程序是什么?) 以及如何实现它:) THX。

3 个答案:

答案 0 :(得分:1)

变成类似

的过程
[['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')

即使您使用的语言本身不支持,也很容易实现。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

print ''.join(out)    
而不是     打印