members = OrderedDict({
"member1" : ["PCP2", "PCP3"],
"member2" : ["PCP1", "PCP2"],
"member3" : ["PCP3"],
"member4" : ["PCP1"],
"member5" : ["PCP4", "PCP5"],
"member6" : ["PCP1", "PCP5"],
"member7" : ["PCP2", "PCP3", "PCP4"],
"member8" : ["PCP3", "PCP5"],
"member9" : ["PCP1", "PCP4", "PCP5"],
"member10" : ["PCP2", "PCP4"],
"member11" : ["PCP2"],
"member12" : ["PCP3"],
"member13" : ["PCP4", "PCP5"]
})
providers = OrderedDict({
"PCP1" : 3,
"PCP2" : 4,
"PCP3" : 2,
"PCP4" : 3,
"PCP5" : 4,
})
价值观
providers
members
对于每个提供者。
PCPcounts = {}
for m in members.values():
for v in m:
if v in PCPcounts:
PCPcounts[v] += 1
else:
PCPcounts[v] = 1
PCPcounts
如果我像这样运行我的笔记本电脑,我会按我想要的顺序输出它:
{'PCP1': 4, 'PCP2': 5, 'PCP3': 5, 'PCP4': 5, 'PCP5': 5}
但是如果我用
print(PCPcounts)
我得到:
{'PCP2': 5, 'PCP3': 5, 'PCP1': 4, 'PCP4': 5, 'PCP5': 5}
differences = dict()
for (k,v), (k2,v2) in zip(PCPcounts.items(), providers.items()):
differences[k] = v - v2
print(differences)
{'PCP2': 2, 'PCP3': 1, 'PCP1': 2, 'PCP4': 2, 'PCP5': 1}
这是不对的。例如
PCP1: 2
应该是,
PCP1: 1
PCPcounts
和
. 我试过用
OrderedDict()