Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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 - Fatal编程技术网

奇怪的python键错误

奇怪的python键错误,python,Python,这是树输入 def ClosestCommonAncestor32 (otu1,otu2,tree): while True: a = tree[otu1][0][0] while True: b = tree[otu2][0] if a == b: return a otu2 = b otu1 = a 我不明白这一点,我以为Keyerr

这是树输入

def ClosestCommonAncestor32 (otu1,otu2,tree):
    while True:
        a = tree[otu1][0][0]
        while True:
           b = tree[otu2][0]
            if a == b:
                return a
            otu2 = b
        otu1 = a
我不明白这一点,我以为Keyerror是当它请求一个不存在的密钥时? 谢谢

我以为Keyerror是当它请求一个不存在的密钥时

但是,字典中没有键
('ADBFGC',14.5)
。元组确实存在于一个值列表中,但它不是键。字典的键是
'A'
'C'
'ADBFGC'

要仅使用元组的第一个元素索引到字典中,请编写
tree[otu2[0]]

我以为Keyerror是当它请求一个不存在的密钥时

但是,字典中没有键
('ADBFGC',14.5)
。元组确实存在于一个值列表中,但它不是键。字典的键是
'A'
'C'
'ADBFGC'


要仅使用元组的第一个元素索引到字典中,请编写
tree[otu2[0]]

因此您正在设置
otu2=('ADBFGC',14.5)
,并可能尝试使用该元素索引到需要整数的列表中。

因此,您正在设置
otu2=('ADBFGC',14.5)
,可能正试图用它来索引一个需要整数的列表。

b=tree[otu2][0]
中是否缺少一个
[0]
?(另外,
otu1=a
行无法访问)行
b=tree[otu2][0]
中是否缺少一个
[0]
?(另外,
otu1=a
行无法访问)
def ClosestCommonAncestor32 (otu1,otu2,tree):
    while True:
        a = tree[otu1][0][0]
        while True:
           b = tree[otu2][0]
            if a == b:
                return a
            otu2 = b
        otu1 = a
{'A': [('AD', 4.0), None, None], 'C': [('ADBFGC', 14.5), None, None], 'B': [('BF', 0.5), None, None], 'E': [('ADBFGCE', 17.0), None, None], 'D': [('AD', 4.0), None, None], 'G': [('BFG', 6.25), None, None], 'F': [('BF', 0.5), None, None], 'ADBFG': [('ADBFGC', 6.25), ('AD', 4.25), ('BFG', 2.0)], 'BF': [('BFG', 5.75), ('B', 0.5), ('F', 0.5)], 'ADBFGC': [('ADBFGCE', 2.5), ('ADBFG', 6.25), ('C', 14.5)], 'ADBFGCE': [None, ('ADBFGC', 2.5), ('E', 17.0)], 'BFG': [('ADBFG', 2.0), ('BF', 5.75), ('G', 6.25)], 'AD': [('ADBFG', 4.25), ('A', 4.0), ('D', 4.0)]}