【发布时间】:2013-09-17 10:12:06
【问题描述】:
我正在尝试提供一种递归方法,该方法在给定课程列表时提供所有可能组合的列表。例如 course = [主菜,甜点] 这是我到目前为止所拥有的:
Entree = ["pumkinsoup","antipasto"]
Dessert = ["cheesecake", "icecream", "tiramisu", "cheeseplatter"]
courses = [Entree, Dessert]
def make_orders(courses):
dishes_so_far = []
recursive_make_orders(dishes_so_far, courses)
def recursive_make_orders(dishes_so_far, courses):
n = len(courses)
if n==0 :
print(dishes_so_far)
else:
current_courses = courses[0]
for D in current_courses:
dishes_so_far.append(D)
recursive_make_orders(dishes_so_far , courses[1:len(courses)])
\我正在尝试让它打印出[[pumkinsoup,cheesecake],[punkinsoup, icecream]] 等组合,但它实际上给了我[pumkinsoup, cheesecake, icecream] 等等。
尝试使用添加而不是附加来添加它,它给了我一个错误。
这是作业,所以需要递归方法。
【问题讨论】:
-
请详细说明您想要完成的任务。示例输出很好,但还不够。并且不要在此处发布您解决问题的尝试。剖析它很分散注意力,也没有乐趣。我认为这可以解释否决票。
-
@ash 实际上我不同意 - 虽然有些人可能会觉得这会分散注意力,但真正尝试解决问题是非常受欢迎的,而且实际上受到社区的鼓励。没有人喜欢“给我代码”的问题......
-
@ash:什么?我认为mattgemmell.com/2008/12/08/what-have-you-tried 是这里的方法吗?
-
你说服了我。我收回评论的最后一部分。
-
在
dishes_so_far.append(D)行之后,打印courses, current_courses, dishes_so_far以查看其内容,然后再调用recursive_make_orders(dishes_so_far , courses[1:len(courses)])
标签: python python-3.x combinations