如何在Python中打印嵌套列表的所有可能性?
这是我的列表:
pos = [['det'], ['noun', 'adj'], ['noun'], ['vb'], ['det'], ['vb', 'noun', 'adj']]
或者
pos = ['det', ['noun', 'adj'], 'noun', 'vb', 'det', ['vb', 'noun', 'adj']]
我正在尝试打印所有的组合:
det noun noun vb det vb
det adj noun vb det vb
det noun noun vb det noun
det adj noun vb det noun
det noun noun vb det adj
det adj noun vb det adj
我应该使用递归函数吗?我试过了,但没有结果。
使用Itertools(排列、乘积、组合)对我没有帮助。
你能帮我吗?
2 个回答
1
'itertools' 确实有帮助:
for i in itertools.product(*pos): print i
('det', 'noun', 'noun', 'vb', 'det', 'vb')
('det', 'noun', 'noun', 'vb', 'det', 'noun')
('det', 'noun', 'noun', 'vb', 'det', 'adj')
('det', 'adj', 'noun', 'vb', 'det', 'vb')
('det', 'adj', 'noun', 'vb', 'det', 'noun')
('det', 'adj', 'noun', 'vb', 'det', 'adj')
10
我觉得 itertools.product()
其实就是你想要的东西:
pos = [['det'], ['noun', 'adj'], ['noun'],
['vb'], ['det'], ['vb', 'noun', 'adj']]
for x in itertools.product(*pos):
print " ".join(x)
打印输出
det noun noun vb det vb
det noun noun vb det noun
det noun noun vb det adj
det adj noun vb det vb
det adj noun vb det noun
det adj noun vb det adj