python递归搜索

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)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值