所以,我们有数据。一点点大数据。 示例
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。
答案 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)
相信您正在寻找Permutation和Combination。 尝试使用嵌套循环。
答案 2 :(得分:0)
我无法评论帝斯曼的评论(因为我没有足够的积分)
但是如果要连接列表并将它们打印为字符串,请使用
print ''.join(out)
而不是
打印