【发布时间】:2015-07-07 05:56:07
【问题描述】:
我将如何编写一个递归函数,该函数使用两个列表,然后生成一个包含两个列表中元素的列表?如果两个列表中都有一个数字两次,则生成的列表中也会有两次该数字。 这是我目前所拥有的:
def merge(L1, L2, i, j, R):
if L1[i] == L2[j]:
R.append(L1[i])
R.append(L2[j])
merge(L1, L2, i, j+1, R)
else:
merge(L1, L2, i+1, j, R)
def sorted_intersection(lst1, lst2):
R = []
return merge(lst1, lst2, lst1[0], lst2[0], R)
Nvm,找到了代码。感谢大家的帮助!
【问题讨论】:
-
您能否发布一个您尝试过的示例和预期的输出?
-
“消耗两个列表”是什么意思?很容易拥有这样的功能:
def consume(list1, list2): return list1 + list2。你是否认为 list1 和 list2 已经被消费了,我不知道。 -
Python 中的递归有两条规则: 1. 只有在没有其他方法的情况下才使用递归。 2. 总有另一种方式。
-
我添加了我目前的工作
标签: python list sorting recursion