递归查找元素是否属于列表

时间:2014-11-29 19:46:33

标签: python algorithm list recursion

说我有一个列表x = [1, 2, 3, 4, 5, 3, 4]

是否有任何递归方法可以仅使用条件a和指令{{1来查找元素a = 3(让我们说if not x:)在列表中}}?

4 个答案:

答案 0 :(得分:1)

定义一个类似的函数:

def search(lst, key):
    if not lst:         # base case: list is empty
        return False
    elif lst[0] == key: # base case: current element is searched element
        return True
    else:               # recursive case: advance to next element in list
        return search(lst[1:], key)

然后致电search(x, a)

更新:如果您想使用pop实现此功能,只需使用lst.pop()更改行lst [0]和lst [1:]

答案 1 :(得分:1)

def rec(lista, goal):
    if not lista:
        return False
    return (goal==lista.pop() or rec(lista, goal))

答案 2 :(得分:0)

类似的东西:

def find(x,index):
   if index == len(array):
       return False;
   if array[index] != x:
        find(x,index + 1)
   else:
        return array.pop([index])

答案 3 :(得分:0)

使用以下内容:

def find(test_list,element):
 try: 
  z=test_list.pop(0)    
  if element==z:
     return True
  return find(test_list,element)
 except IndexError:    
  return False