1

我有一些字符串包含许多由空格字符分隔的值。有时我们可以找到一个由多个值组成的值,这些值由字符“,”分隔,例如在下面的字符串中,值 3 和 5 分别由逗号分隔的 2 和 4 个值组成。分别

value1 value2 value3_0,value3_1 value4 value5_0,value5_1,value5_2,value5_3 value6

我想将此字符串拆分为许多字符串,以便字符串中没有组合值。所以前面的字符串变成:

value1 value2 value3_0 value4 value5_0 value6

value1 value2 value3_1 value4 value5_1 value6

value1 value2 value3_0 value4 value5_2 value6

value1 value2 value3_1 value4 value5_3 value6

value1 value2 value3_0 value4 value5_1 value6

value1 value2 value3_1 value4 value5_2 value6

value1 value2 value3_0 value4 value5_3 value6

value1 value2 value3_1 value4 value5_0 value6

如何在 python 中很容易地做到这一点?

编辑:在输入字符串中,有一个组件“value3_0,value3_1”(该组件由 2 个值组成),我们有“value5_0,value5_1,value5_2,value5_3”(该组件由 4 个值组成),所以我们将有 2*4 = 8 个没有组合组件的新字符串。

4

1 回答 1

3

怎么样:

from itertools import product

text = 'value1 value2 value3_0,value3_1 value4 value5_0,value5_1,value5_2,value5_3 value6'
items = [el.split(',') for el in text.split()]
for item in product(*items):
    print item # use ' '.join(item) to get a string back

输出:

('value1', 'value2', 'value3_0', 'value4', 'value5_0', 'value6')
('value1', 'value2', 'value3_0', 'value4', 'value5_1', 'value6')
('value1', 'value2', 'value3_0', 'value4', 'value5_2', 'value6')
('value1', 'value2', 'value3_0', 'value4', 'value5_3', 'value6')
('value1', 'value2', 'value3_1', 'value4', 'value5_0', 'value6')
('value1', 'value2', 'value3_1', 'value4', 'value5_1', 'value6')
('value1', 'value2', 'value3_1', 'value4', 'value5_2', 'value6')
('value1', 'value2', 'value3_1', 'value4', 'value5_3', 'value6')
于 2013-11-06T14:16:16.407 回答