按特定组合将句子拆分为句子列表

Raa*_*ady 3 python

我有一句话

string = 'senior engineer/developer in school/university'
Run Code Online (Sandbox Code Playgroud)

我的除了输出组合是

string_list = ['senior engineer in school', 'senior engineer in university',
               'senior developer in school', 'senior developer in school]
Run Code Online (Sandbox Code Playgroud)

我想通过基于“/”拆分句子来进行组合。有没有办法以这种方式拆分?我在看 itertools 但它不是我期望的方式

x = string.split('/')
x = [y.split() for y in x]
print(list(combinations(x,len(x))))
Run Code Online (Sandbox Code Playgroud)

sch*_*ggl 5

使用itertools.product和巧妙拆分:

from itertools import product

list(map(' '.join, product(*(s.split('/') for s in string.split()))))
# ['senior engineer in school', 
#  'senior engineer in university', 
#  'senior developer in school', 
#  'senior developer in university']
Run Code Online (Sandbox Code Playgroud)

这首先按空格分割,然后每个标记按斜杠分割。product然后从生成的嵌套迭代构建所有组合。当这些组合产生为 时tuples,我们将' '.join它们重新变成句子 ( str)。