Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我需要帮助来修复我的两个功能_Python_Function - Fatal编程技术网

Python 我需要帮助来修复我的两个功能

Python 我需要帮助来修复我的两个功能,python,function,Python,Function,我试图用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)

我试图用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
的数据格式错误。只需移除外部
[]

>>> a = ('far','?', '?', '?')
>>> b = ('ss' , '0','0','i')
>>> more_specific(b, a)
True
列表中只有一个元素是元组:

>>> len([('far','?', '?', '?')])
1
但您需要遍历元组的所有元素:

>>> len(('far','?', '?', '?'))
4

它们对我来说很好…
更具体的('00','?')
返回
True
。您对代码做了任何更改吗?我已经在上面列出了我正在使用的示例