使用递归划分列表 [英] divide list using recursion

查看:39
本文介绍了使用递归划分列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用递归来实现这个函数,该函数接受一个函数参数 f,当传递一个值时,它将返回为真或假.它应该检查列表中的所有值,并将所有真值存储在一个列表中,将假值存储在另一个列表中,以元组形式返回它们.

I am trying to implement this function using recursion, the function takes a function parameter f where when passed a value it will return as true or false. It should check all values in the list and store all true values in a list and false values in another list returning them in a tuple.

def divL(f, l):

     if not l:
          return ([],[])


     else:
          a = list()
          b = list()
          for i in range(len(l)):

               if f(l[i]):
                    a.append(l[i])

               else:
                    b.append(l[i])

          return (a, b)

推荐答案

以拆分列表为参数的递归函数:

Recursive function that takes split lists as parameters:

def _R(f, l, ts, fs):
  if not l:
    return ts, fs
  if f(l[0]):
    return _R(f, l[1:], ts + l[:1], fs)
  return _R(f, l[1:], ts, fs + l[:1])

def R(f, l):
  return _R(f, l, [], [])

print R( lambda x: x > 10, range(20) )

这篇关于使用递归划分列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆