用另一个字典的值替换一个字典的键

时间:2019-11-18 19:38:00

标签: python python-2.7 dictionary

我有两个这样的字典

import requests

value = ['http://teste', 'http://cast4.audiostream.com.br:8651/status-json.xsl']

for item in value:
    try:
        response = requests.get(item)
        print(response)
    except:
        print('Error')

我需要在Python中获得以下结果。有人可以帮忙吗

dict_1 = {'adbc.txt':'Text','union.pdf':'pdf', 'file1.py':'Python'}
dict_2 = {'adbc.txt':['a.txt','b.txt','c.txt'], 'file1.py':['test.py', 'modified.py']}

'adbc.txt''file1.py'键是两个词典中的通用键,我必须得到以上结果。

2 个答案:

答案 0 :(得分:0)

您可以使用字典理解,例如:

dict_1 = {'adbc.txt':'Text','union.pdf':'pdf', 'file1.py':'Python'}
dict_2 = {'adbc.txt':['a.txt','b.txt','c.txt'], 'file1.py':['test.py', 'modified.py']}

result = {val: dict_1[key] for key, values_list in dict_2.items() for val in values_list}
print(result)
# {'a.txt': 'Text', 'b.txt': 'Text', 'c.txt': 'Text', 'test.py': 'Python', 'modified.py': 'Python'}

答案 1 :(得分:0)

由于dict_1中的键之一不在dict_2中,因此列表理解将非常麻烦。一个简单的循环:

result = {}
for key in dict_1.keys():
    if key in dict_2.keys():
        for file in dict_2[key]:
            result[file]=dict_1[key]
    else:
        result[key]=dict_1[key]

print(result)
# {'a.txt': 'Text', 'b.txt': 'Text', 'c.txt': 'Text', 'union.pdf': 'pdf', 'test.py': 'Python', 'modified.py': 'Python'}