python:如何在一个字典中添加元素,该元素也位于另一个字典中

时间:2020-10-29 06:33:01

标签: python loops dictionary

示例字典

newlist={1:{1: {'_name': 'michael', 'id': '001', 'rating': '10', 'role': 'general_manager'},
        2: {'_name': 'mohamad', 'id': '002', 'rating': '9.5', 'role': 'team_leader'},
        3: {'_name': 'johnny', 'id': '003', 'rating': '9', 'role': 'developer'},
        4: {'_name': 'nicholos', 'id': '004', 'rating': '9', 'role': 'tech_support'}},
    2: {1: {'_name': 'michael', 'id': '001', 'rating': '10', 'role': 'general_manager'},
        2: {'_name': 'mohamad', 'id': '002', 'rating': '9.5', 'role': 'team_leader'},
        3: {'_name': 'johnny', 'id': '003', 'rating': '9', 'role': 'developer'},
        5: {'_name': 'nawaz', 'id': '005', 'rating': '8.5', 'role': 'intern'}},
    3: {1: {'_name': 'michael', 'id': '001', 'rating': '10', 'role': 'general_manager'},
        2: {'_name': 'mohamad', 'id': '002', 'rating': '9.5', 'role': 'team_leader'},
        4: {'_name': 'rogers', 'id': '004', 'rating': '9', 'role': 'tech_support'},
        5: {'_name': 'nawaz', 'id': '005', 'rating': '8.5', 'role': 'intern'}},
    4: {1: {'_name': 'michael', 'id': '001', 'rating': '10', 'role': 'general_manager'},
        3: {'_name': 'johnny', 'id': '003', 'rating': '9', 'role': 'developer'},
        4: {'_name': 'gargano', 'id': '004', 'rating': '9', 'role': 'tech_support'},
        5: {'_name': 'nawaz', 'id': '005', 'rating': '8.5', 'role': 'intern'}},
    5: {2: {'_name': 'mohamad', 'id': '002', 'rating': '9.5', 'role': 'team_leader'},
        3: {'_name': 'johnny', 'id': '003', 'rating': '9', 'role': 'developer'},
        4: {'_name': 'williams', 'id': '004', 'rating': '9', 'role': 'tech_support'},
        5: {'_name': 'nawaz', 'id': '005', 'rating': '8.5', 'role': 'intern'}}}

for k in range(len(new_list)):
    for l in k:
        m = new_list[k][role]['tech_support']

我想从列表中获取所有“ tech_support”角色。我如何在一个字典中访问键值,而在另一个字典中也访问

3 个答案:

答案 0 :(得分:0)

您可以尝试下面的代码,看看是否获得所需的输出?

for key, val in newlist.items():
    for k1, v1 in val.items():
        if v1['role'] == 'tech_support':
            print(v1)

答案 1 :(得分:0)

这真的搞砸了。您应该尝试另一种方法。但是如果您坚持尝试以下代码:

new_list={1:{1: {'_name': 'michael', 'id': '001', 'rating': '10', 'role': 'general_manager'},
        2: {'_name': 'mohamad', 'id': '002', 'rating': '9.5', 'role': 'team_leader'},
        3: {'_name': 'johnny', 'id': '003', 'rating': '9', 'role': 'developer'},
        4: {'_name': 'nicholos', 'id': '004', 'rating': '9', 'role': 'tech_support'}},
    2: {1: {'_name': 'michael', 'id': '001', 'rating': '10', 'role': 'general_manager'},
        2: {'_name': 'mohamad', 'id': '002', 'rating': '9.5', 'role': 'team_leader'},
        3: {'_name': 'johnny', 'id': '003', 'rating': '9', 'role': 'developer'},
        5: {'_name': 'nawaz', 'id': '005', 'rating': '8.5', 'role': 'intern'}},
    3: {1: {'_name': 'michael', 'id': '001', 'rating': '10', 'role': 'general_manager'},
        2: {'_name': 'mohamad', 'id': '002', 'rating': '9.5', 'role': 'team_leader'},
        4: {'_name': 'rogers', 'id': '004', 'rating': '9', 'role': 'tech_support'},
        5: {'_name': 'nawaz', 'id': '005', 'rating': '8.5', 'role': 'intern'}},
    4: {1: {'_name': 'michael', 'id': '001', 'rating': '10', 'role': 'general_manager'},
        3: {'_name': 'johnny', 'id': '003', 'rating': '9', 'role': 'developer'},
        4: {'_name': 'gargano', 'id': '004', 'rating': '9', 'role': 'tech_support'},
        5: {'_name': 'nawaz', 'id': '005', 'rating': '8.5', 'role': 'intern'}},
    5: {2: {'_name': 'mohamad', 'id': '002', 'rating': '9.5', 'role': 'team_leader'},
        3: {'_name': 'johnny', 'id': '003', 'rating': '9', 'role': 'developer'},
        4: {'_name': 'williams', 'id': '004', 'rating': '9', 'role': 'tech_support'},
        5: {'_name': 'nawaz', 'id': '005', 'rating': '8.5', 'role': 'intern'}}}

for k in new_list.values():
    for l in k.values():
        for m in l.values():
            if 'tech_support' in m:
                print(l)

答案 2 :(得分:0)

# user parameters 
role = 'role'
key = 'tech_support'

# method One
result = []
for i in newlist:
    for j in newlist[i]:
        if newlist[i][j][role] is key:
            result.append(newlist[i][j])

# method two
output = [newlist[i][j] for i in newlist for j in newlist[i] if newlist[i][j][role] is  key]