我还是编码的新手,我将如何递归执行此功能?该代码不需要固定,它可以按原样运行。相反,我正在尝试执行相同的功能,但以递归方式执行。目前,我只是使用for循环来运行代码。
select t1.* from tablename t1
where not exists( select 1 from tablename t2
where t1.cid=t2.cid and attribute='void'
)
and exists ( select 1 from tablename t2
where t1.cid=t2.cid
having count(distinct attribute)=2
)
and attribute in ('payment','delete')
举例说明此非递归函数的工作方式:
def longestSeqFinder(tryList):
longestSeqList = []
for i in tryList:
longestSeq = (max(i, key = len))
longestSeqList.append(longestSeq)
return longestSeqList
答案 0 :(得分:0)
一种方法是只计算传递到函数中的第一个元素的最大值,并将其添加到使用列表的其余部分调用自己的结果之前。
也就是说,
def get_longest(lst):
return [max(lst[0], key=len)] + get_longest(lst[1:]) if lst else []
单线也! :)
稍作测试就可以完成这项工作:
>>> get_longest([['0', '234', '6', ''],
['', '', '', '', '', '', ''],
['012', '', '5678']])
['234', '', '5678']