我正在尝试用python实现一个候选消除算法。我需要写两个函数,一个用于找到更一般的假设,另一个用于找到更具体的假设。 根据这个定义,“问号”的数目越多,“零”的数目越少,意味着越普遍,反之亦然。 但我的功能不起作用。它们只返回false。问题出在哪里?你知道吗
def more_specific(a, b):
"""
Checks if a is more specific than b.
"""
aa = 1
bb = 1
for i in range(len(a)):
if a[i] == '0':
aa+=1
elif a[i] == '?':
aa-=1
for k in range(len(b)):
if b[k] == '0':
bb+=1
elif b[k] == '?':
bb-=1
return aa > bb
def more_general(a, b):
"""
Checks if a is more general than b.
"""
aa = 1
bb = 1
for i in range(len(a)):
if a[i] == '?':
aa+=1
elif a[i] == '0':
aa-=1
for k in range(len(b)):
if b[k] == '?':
bb+=1
elif b[k] == '0':
bb-=1
return aa > bb
尝试以下示例:
a = [('far','?', '?', '?')]
b = [('ss' , '0','0','i')]
a
和b
的数据格式错误。只需移除外部[]
:列表中只有一个元素是元组:
但是你要检查元组的所有元素:
相关问题 更多 >
编程相关推荐