我需要使用递归遍历db,并在最后得到一个结果列表。函数正常工作(如果print unrem),但我不能返回结果列表。你知道吗
def find_locks(item, ids):
if item.video_id:
#print (item.video_id, ids)
return (item.video_id, ids)
for i in CatalogItem.objects.filter(parent=item):
if i.is_lock:
find_locks(i, ids.append(i.id))
else:
find_locks(i, ids)
如何获得列表结果?你知道吗
我会使用递归生成器而不是构建列表:
在python3.3中,可以使用
yield from
作为最后一部分。你知道吗您只需将每个结果存储在一个列表中,并在最后返回:
请注意,您还需要返回列表中的每个项,因为对
find_locks
的其他调用希望接收列表作为返回值。你知道吗尝试以下操作:
在基本情况下,返回只包含一项的列表。如果不是基本情况,则创建一个新列表,执行递归调用,用递归调用的结果扩展列表并返回该列表。你知道吗
相关问题 更多 >
编程相关推荐