我是一个python新手,刚刚用python实现了我的第一个ID3,并且我的规则是这样的dict形式
{'a' : {'b': 'no', 'c': 'no', 'd': {'z': {'q': 'no', 'y': 'yes'}}}}
我现在想把这个输出为
<a = b >---> 'no'
<a = c >---> 'no'
<a = d > AND <z = q >---> 'no'
<a = d > AND <z = y >---> 'yes'
我只是不知道该怎么做
这是我的密码: 应该以逗号分隔的单个字符串返回所有内容
def printer(a):
keys = a.keys()
for i in keys:
rules = ""
for j in a[i].keys():
tulip = "< Attribute " + str(i) + " = "
tulip += str(j)
tulip += " > "
if type(a[i][j]) == str:
tulip += "--->" + str(a[i][j])
rules += tulip
rules += ","
else:
tulip += "AND "
tulip += str(printer(a[i][j]))
rules += tulip
return rules
较短:
因此,在更大的规则集/递归dict上测试它:
产量:
更新:
对于使用任意嵌套打印这些规则的递归函数,可以使用以下方法:
更新了Dict和函数
更新输出:
通过调用此函数并打印
string_rules
中的每一行:输入格式:
输出格式:
相关问题 更多 >
编程相关推荐