result = {'a': 30, 'b': 88, 'c': 100, 'd': 90}
key = 120
result 任意组合找出最接近key的组合
麻烦各位了
result = {'a': 30, 'b': 88, 'c': 100, 'd': 90}
#键值交换
Res_result =dict(zip(result.values(),result.keys()))
key = 120
newList = [key-int(j) for i,j in result.items()]
minValue = min(newList)
minKey = Res_result[key-minValue]
print("最接近固定值的组合,key={},value={}".format(minKey,key-minValue))
# -*- coding:utf-8 -*-
def dataUpdate(result,key):
newDict = {}
for k,v in result.items():
nkey = int( key - v )
if newDict.get(nkey):
newDict.get(nkey).append({k:v})
else:
newDict[nkey] = [ {k:v} ]
return newDict
if __name__ == '__main__':
result = {'a': 30, 'b': 88, 'c': 100, 'd': 90}
key = 120
newDict = dataUpdate(result,key)
#对新字典的key进行排序,最小的表示最接近的结果
newDictSort = sorted( newDict.items() , key= lambda item:item[0] )
newResult = newDictSort[0][1][0]
print(newResult)
print('最接近key={}的组合是:{}'.format( key, newResult))