我有2本词典。每个字典中的每个键都有4个值。我需要将第一个字典中每个键的每个值除以第二个字典中相应键的相应值,并将结果返回给新字典。例如:
dict1 = {'key1' = [1, 2, 3, 4], 'key2' = [5, 6, 7, 8]}
dict2 = {'key1' = [2, 2, 2, 2], 'key2' = [3, 3, 3, 3]}
应该导致:
result_dict = {'key1' = [0.5, 1, 1.5, 2], 'key2' = [1.67, 2, 2.33, 2.67]}
我试过的一些失败的解决方案:
def dict_div(dict1, dict2):
result_dict = {}
for k, v in dict1.items():
if k in dict2:
result_dict[k] = dict1/dict2[k]
return result_dict
def dict_div(dict1, dict2):
result_dict = {}
return result_dict = {k: dict1[k] / dict2[k] for k in dict1 if k in dict2}
def dict_div(dict1, dict2):
return numpy.divide(list(dict1.items()), list(dict2.items()))
你在那里。除了划分列表之外,你的第一次尝试几乎全部都有。
def dict_div(dict1, dict2):
result_dict = {}
for k, v in dict1.items():
if k in dict2:
result_dict[k] = numpy.divide(v, dict2[k])
return result_dict
Numpy允许您直接划分列表项,否则您可能使用了以下内容:
def divide_lists(list1, list2):
result = []
for i, v in enumerate(list1)
result.append(v/list2[i])
return result
您也可以在第二次尝试时使用该样式编写它,该代码行数较少但最初可能难以理解:
def dict_div(dict1, dict2):
return {k: numpy.divide(v, dict2[k]) for k, v in dict1.items() if k in dict2}