python遞迴搜尋
阿新 • • 發佈:2019-02-16
rs.py
# Recursive module class Recursive: def __is_list(self, obj): if type(obj) == type([]): return True else: return False def search(self, parentElement, callback, index=-1): temp_index = index for childElement in parentElement: index = temp_index if not self.__is_list(childElement): callback(index, childElement) else: index += 1 self.search(childElement, callback, index)
test.py
from rs import Recursive list = [ [ "Apple", [ "California", "Computer", "Product List", [ "iPhone", [ "iPhone 3", "iPhone 4", "iPhone 4S", "iPhone 5", "iPhone 5s", "iPhone 6" ], "iPad", "iMac", "iTouch" ] ] ], [ "Lenovo", [ "Beijing", "Laptop" ] ] ] # Callback(element_index, leaf_node) def callbackFunc(i, leafNode): white_space = '' for ws in range(0, i): white_space += ' ' print white_space, leafNode rc = Recursive() # search(recursive_element, callback_function) rc.search(list, callbackFunc)