我必须编写一个使用递归生成列表的代码,但列表中的最后一项需要为空。这是我的代码,我需要它来生产它与实际生产的产品。如何在python中结束列表?
def coin_change(avail_change, total_cents):
if avail_change == []:
return []
if total_cents // avail_change[0] >= 1:
first = total_cents // avail_change[0]
first_list = [avail_change[0], first]
return [first_list, coin_change(avail_change[1:], (total_cents - (avail_change[0] * first)))]
else:
return coin_change(avail_change[1:], total_cents)
结果:
coin_change([50,5,1],108) => [[50,2],[5,1],[1,3]]
expected [[50, 2], [5, 1], [1, 3]], saw [[50, 2], [[5, 1], [[1, 3], []]]]
我需要[1,3]
后列表结束,但我不知道该怎么办。
如果你留下了一个空表为什么要返回一个空列表? – Makoto 2013-03-17 20:35:31
请注意,检查空列表的pythonic方法是“if some_list:”,而不是“if some_list == []:'”。 – 2013-03-17 20:36:40
将[first_list,coin_change(avail_change [1:],(total_cents - (avail_change [0] * first)))]'变更为'[first_list] + coin_change(avail_change [1:],(total_cents - (avail_change [0 ] *第一)))'。 '[list1,list2]'不等于'[list1] + list2'。 – nymk 2013-03-17 20:50:42