不知道我哪里出错了,但它给了我[-1, [-2, [-3, []]]]
而不是[-1,-2,-3]
def search(list1,list2):
if list2 == []:
return list1
elif list2[0] == list1[0]:
return [-list1[0] , search(list1[1:],list2[1:])]
print search([1,2,3],[1,2,3])
答案 0 :(得分:2)
我不完全确定你的函数的目标是什么(为什么返回匹配值的负数?),但是你可以通过在return
语句中连接列表来获得预期的输出:
def search(list1,list2):
if list2 == []:
return list1
elif list2[0] == list1[0]:
return [-list1[0]] + search(list1[1:],list2[1:])
print search([1,2,3],[1,2,3])
# Output:
# [-1, -2, -3]
答案 1 :(得分:1)
如果你想搜索两个列表中位于相同位置的元素并使用它们创建列表但是改变它们的符号,你不需要它,你可以这样做:
A = [1,2,3]
B = [1,2,3]
print [ -i for i,j in zip(A,B) if i == j]