["Hey", ["What's Up", "John", "Good Evening"], "Smith"]
在python中使用这个数组结构,如何创建所有可能的句子?嘿什么是史密斯/嘿约翰史密斯/嘿晚安史密斯。我一直在试图解决这个问题,但是现在我的大脑太过于油腻,无法想到适当的递归/技术。提前谢谢!
答案 0 :(得分:2)
它需要对输入列表进行一些标准化,以便它是一个列表列表,而不是(字符串和列表)列表。然后使用itertools
:
>>> w = [["Hey"], ["What's Up", "John", "Good Evening"], ["Smith"]]
>>> list(itertools.product(*w))
[('Hey', "What's Up", 'Smith'),
('Hey', 'John', 'Smith'),
('Hey', 'Good Evening', 'Smith')]
>>> map(' '.join, list(itertools.product(*w)))
["Hey What's Up Smith", 'Hey John Smith', 'Hey Good Evening Smith']