Python:如何在哈希表中获取子键的值?

时间:2013-11-19 19:33:37

标签: python dictionary hash hashtable

我是python的新手。我正在学习从存储在文件中的哈希表中获取数据。以下是我的表格示例:

{ 
"Technology": {"20809": 98},
"Movie":{"1193435": 1},
"Entertainment":{"13398": 76},
"Computer": {"28765": 54},
"Food": {"708": 4},
"Gasoline": {"358": 18},
"Material": {"98": 6},
"Water": {"3": 6}
}

问题: 我如何获得子键的值?例如,子键"708""Food"下)的值为4。我怎样才能获得4号?我只知道,如果我使用variable.get(key),我将获得子键和子键的值,但是如何才有价值?以下代码是我想要做的。我想将输入传递给函数并返回值。

如果我想在大量哈希表中搜索子键的值,这种方法是否足够有效(足够快)?谢谢。

def searchAtHashTable(input):        
    hashVal = # I read the hash value from a file by using .read()
    for key in hashVal.keys():
        if key == input:
           return sorted(hashVal.get(key))

1 个答案:

答案 0 :(得分:4)

只需链接项目语法:

>>> outerdict['Food']['708']
4

如果您拥有的只是'708',则必须搜索:

def searchNestedKey(outerdict, key):
    for nesteddict in outerdict.itervalues():
        if key in nesteddict:
            return nesteddict[key]

这会循环遍历所有嵌套字典(outerdict的值),如果其中存在key,它将返回该值。如果多个字典具有相同的键,则选择哪个键是未定义的,因为Python字典不承诺特定的排序。