对于公共密钥,您将如何访问相应的值

时间:2018-03-01 12:22:03

标签: python list dictionary key

def query_RR(postings, qtext): 
   words = tokenize(qtext) 
   allpostings = [postings[w] for w in words]
   for a in allpostings: 
       print a.keys()

这是查询的结果

[0, 2, 3, 4, 6]
[1, 4, 5]
[0, 2, 4]
[4, 5] 

查询采用用户输入术语(qtext),标记化并为每个令牌生成发布列表。

发布列表是嵌套词典的列表。 例如

[{0 : 0.68426, 1: 0.26423}, {2: 0.6842332, 0: 0.9823}] 

对于常用密钥,您将如何访问相应的值,对于我的示例,常见值为0,那么您如何访问值{0 : 0.68426, 0: 0.9823}

2 个答案:

答案 0 :(得分:0)

lst = [{0 : 0.68426, 1: 0.26423}, {2: 0.6842332, 0: 0.9823}]

res = {}
for x in lst:
    for key, value in x.items():
        if key in res:
            res[key].append(value)
        else:
            res[key] = [value]

这会返回{0: [0.68426, 0.9823]}表格的字典,因为{0 : 0.68426, 0: 0.9823}无效。

答案 1 :(得分:0)

这是一种方式:

lst = [{0: 0.68426, 1: 0.26423}, {2: 0.6842332, 0: 0.9823}] 

[d[0] for d in lst]       # [0.68426, 0.9823]

或者如果您需要字典:

{0: [d[0] for d in lst]}  # {0: [0.68426, 0.9823]}

如果您需要计算常用字典键:

{i: [d[i] for d in lst] for i in set.intersection(*map(set, lst))}

# {0: [0.68426, 0.9823]}

请注意,字典键必须是唯一的,因此无法输出所需的输出。