来自数据的字符串组合
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)
而不是
打印
所以,我们有数据。一点大数据。 例如。
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)
而不是 打印