【发布时间】:2022-01-22 07:08:40
【问题描述】:
我有一本字典data1:
data1['Cluster'] = Cluster
data1['pond'] = pond
data1['OsId'] = OsId
data1['BrowserId'] = BrowserId
data1['PageId'] = PageId
data1['conversion'] = conversion
data1['volume'] = volume
data1['KPI'] = KPI
data1['items'] = list(range(len(BrowserId)))
data1['num_items'] = len(OsId)
还有五个包:bag1、bag2、bag3、bag4 和 bag5。
对于每个袋子,我们会显示这样的元素列表,例如:
Bag 1
OsId 11 Cluster 18 BrowserId 16 PageId 1149586 conversion 189.0 volume 8123.0 KPI 0.0233019197681265
OsId 11 Cluster 7 BrowserId 16 PageId 955764 conversion 499.0 volume 25258.0 KPI 0.0197577963721497
OsId 11 Cluster 9 BrowserId 16 PageId 1109643 conversion 88.0 volume 2649.0 KPI 0.0330472292481987
Bag 2
OsId 11 Cluster 15 BrowserId 16 PageId 1149586 conversion 280.0 volume 11123.0 KPI 0.0251384955395488
OsId 11 Cluster 15 BrowserId 16 PageId 955761 conversion 321.0 volume 13568.0 KPI 0.0236598154502103
OsId 11 Cluster 7 BrowserId 16 PageId 1149586 conversion 109.0 volume 6049.0 KPI 0.0179813483261127
我尝试只为每个包选择具有最大 KPI 值的元素,例如结果将是:
Bag 1
OsId 11 Cluster 9 BrowserId 16 PageId 1109643 conversion 88.0 volume 2649.0 KPI 0.0330472292481987
Bag 2
OsId 11 Cluster 15 BrowserId 16 PageId 1149586 conversion 280.0 volume 11123.0 KPI 0.0251384955395488
我做了这个python代码:
data1 = {}
pond = data['pond']
Cluster = data['Cluster']
OsId = data['OsId']
BrowserId = data['BrowserId']
PageId = data['PageId']
volume = data['VolumePred']
conversion = data['ConversionPred']
KPI = data['KPIPred']
assert len(OsId) == len(BrowserId) == len(PageId) == len(conversion)
data1['Cluster'] = Cluster
data1['pond'] = pond
data1['OsId'] = OsId
data1['BrowserId'] = BrowserId
data1['PageId'] = PageId
data1['conversion'] = conversion
data1['volume'] = volume
data1['KPI'] = KPI
data1['items'] = list(range(len(BrowserId)))
data1['num_items'] = len(OsId)
number_bags = 5 #All have the same capacity of 50 pounds
for j in data1['bags']:
bag_value = 0
bag_weight = 0
bag_volume= 0
bag_rad = 0
bag_conversion=0
print('\n','Bag', j+1 , '\n')
for i in data1['items']:
if((x[i,j].solution_value()>0)):
print('OsId',data1['OsId'][i],
'Cluster', data1['Cluster'][i],
'BrowserId', data1['BrowserId'][i],
'PageId', data1['PageId'][i],
'conversion', data1['conversion'][i],
'volume', data1['volume'][i],
'KPI', data1['KPI'][i]
)
你能帮我解决这个问题吗?
【问题讨论】:
-
是
bags 的字典吗?还是它们是字典列表?data1与在每个bag中查找最大 KPI 值有何关联? -
不,只有 data1 是字典。谢谢
-
包是什么数据结构?如果它们不是字典,它们是列表、元组,我们如何知道哪个数字对应于最大 KPI?
标签: python dictionary