python字典关键字索引

python字典如下


{'ForceApplying': ['R - 1', 'R - 2', 'R - 3', 'R - 4', 'R - 5', 'R - 6', 'R - 7', 'R - 8', 'R - 9', 'R - 10', 'R - 11', 'R - 12', 'R - 13', 'R - 14'], 'SpinningTool': ['E - 4', 'E - 9', 'E - 14']}


有没有可能通过关键字索引,比如通过‘R - 1’ 索引到 ‘ForceApplying’

您好,功能已实现。

dict1 = {'ForceApplying': ['R - 1', 'R - 2', 'R - 3', 'R - 4', 'R - 5', 'R - 6', 'R - 7', 'R - 8', 'R - 9', 'R - 10', 'R - 11',
                   'R - 12', 'R - 13', 'R - 14'], 'SpinningTool': ['E - 4', 'E - 9', 'E - 14']}


x = 'R - 1'

for i, j in dict1.items():
    if x in j:
        print(i)

a = {'ForceApplying': ['R - 1', 'R - 2', 'R - 3', 'R - 4', 'R - 5', 'R - 6', 'R - 7', 'R - 8', 'R - 9', 'R - 10', 'R - 11', 'R - 12', 'R - 13', 'R - 14'], 'SpinningTool': ['E - 4', 'E - 9', 'E - 14']}
b = [ key for key in a if 'R - 1' in a[key]]
print(b)

如果查询需要很多次的话,你可以先构建一个反向的map,这样查询就会很快

将每一个键的列表里面的值作为一个新的键,原来的键作为值构建一个新的字典,就可以通过里面的值来所以原来的键了

target_map = {
    'ForceApplying': ['R - 1', 'R - 2', 'R - 3', 'R - 4', 'R - 5', 'R - 6', 'R - 7', 'R - 8', 'R - 9', 'R - 10',
                      'R - 11', 'R - 12', 'R - 13', 'R - 14'], 'SpinningTool': ['E - 4', 'E - 9', 'E - 14']}
res_map = {}
keys = list(target_map.keys())
for i in keys:
    temp_arr = target_map[i]
    for t in temp_arr:
        res_map[t] = i
target = "R - 1"
print(f"{target}对应的键是:{res_map[target]}")


img