[英]Return closest value in look up table, and put in list of dicts
我有這樣的字典列表:
my_data = [{'id': 'A', 'density':0.7},
{'id': 'B', 'density':1.5},
{'id': 'C', 'density':3.75}]
以及一個查找表(lut)作為字典的列表,如下所示:
lut = [{'density': 1.1, 'capacity': 5.19},
{'density': 2.5, 'capacity': 9.42},
{'density': 4.3, 'capacity': 16.78}]
對於my_data中的每個字典,我想獲取“密度”並在lut中找到最接近的對應“密度”值。
然后,我想在該字典中添加相應的“容量”項。
我從一個函數開始:
def function_for_adding_capacity(data, lut):
my_list_of_dicts = []
for datum in data:
for item in lut:
datum['capacity'] = ...
my_list_of_dicts.append({
'id': datum['id'],
'density': datum['density'],
'capacity': datum['capacity'],
return my_list_of_dicts
我只是不確定(1)是否需要第二個循環,以及(2)如何找到最接近的匹配密度,而不是返回相應的容量?
如果要將容量附加到my_data
字典中,則可以使用以下方法進行:
def add_capacities(my_data, lut):
for data in my_data:
closest = {'density': float('inf'), 'capacity': None}
for l in lut:
if abs(l['density'] - data['density']) < abs(closest['density'] - data['density']):
closest = l
data['capacity'] = closest['capacity']
首先從最接近的無窮大開始,然后測試lut
每個值以查看密度是否更接近。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.