python字典的排序以及利用两个字典的公共键进行对应值的排序

1.我有一个患者对应的医生表,键是患者的编号,值是患者预约的医生。

patient_doctor = {0: 0, 1: 2, 2: 1, 3: 0, 4: 0, 5: 0, 6: 1, 7: 0, 8: 0, 9: 2, 10: 2, 11: 2, 12: 0, 13: 1, 14: 2, 15: 1, 16: 0, 17: 0, 18: 2, 19: 0, 20: 1, 21: 1, 22: 2, 23: 2, 24: 0, 25: 1, 26: 0, 27: 1, 28: 0, 29: 1, 30: 1, 31: 2, 32: 0, 33: 1, 34: 2, 35: 0, 36: 1, 37: 2, 38: 2, 39: 0, 40: 1, 41: 1, 42: 2, 43: 1, 44: 2, 45: 1, 46: 1, 47: 0, 48: 0, 49: 2}
 

2.还有一个患者到达的时间表,键是患者的编号,值是患者的到达时间。

patient_arrival= {0: 48.0, 1: 2.0, 2: 53.0, 3: 34.0, 4: 30.0, 5: 6.0, 6: 22.0, 7: 14.0, 8: 56.0, 9: 27.0, 10: 44.0, 11: 45.0, 12: 37.0, 13: 43.0, 14: 10.0, 15: 54.0, 16: 11.0, 17: 28.0, 18: 3.0, 19: 57.0, 20: 39.0, 21: 27.0, 22: 26.0, 23: 35.0, 24: 3.0, 25: 16.0, 26: 32.0, 27: 52.0, 28: 28.0, 29: 57.0, 30: 7.0, 31: 43.0, 32: 50.0, 33: 16.0, 34: 16.0, 35: 15.0, 36: 12.0, 37: 10.0, 38: 30.0, 39: 31.0, 40: 29.0, 41: 12.0, 42: 24.0, 43: 52.0, 44: 42.0, 45: 20.0, 46: 5.0, 47: 15.0, 48: 27.0, 49: 13.0}

 

3.现在我想生成每个医生的患者表,并且按照到达时间先后进行排序。

首先对患者的时间表进行排序。(字典的排序)

patient_arrival  = dict(sorted(patient_arrival.items(),key = lambda x:x[1]))

 注意这里一定要有dict,否则直接sorted之后就不再是字典了。

 

4.得到新的时间表。

patient_arrival ={1: 2.0, 18: 3.0, 24: 3.0, 46: 5.0, 5: 6.0, 30: 7.0, 14: 10.0, 37: 10.0, 16: 11.0, 36: 12.0, 41: 12.0, 49: 13.0, 7: 14.0, 35: 15.0, 47: 15.0, 25: 16.0, 33: 16.0, 34: 16.0, 45: 20.0, 6: 22.0, 42: 24.0, 22: 26.0, 9: 27.0, 21: 27.0, 48: 27.0, 17: 28.0, 28: 28.0, 40: 29.0, 4: 30.0, 38: 30.0, 39: 31.0, 26: 32.0, 3: 34.0, 23: 35.0, 12: 37.0, 20: 39.0, 44: 42.0, 13: 43.0, 31: 43.0, 10: 44.0, 11: 45.0, 0: 48.0, 32: 50.0, 27: 52.0, 43: 52.0, 2: 53.0, 15: 54.0, 8: 56.0, 19: 57.0, 29: 57.0

 

5.对于时间表中的每个患者,找到该患者对应的医生,然后在医生的患者列表中记录下该患者。

doctor_patient = [[]for i in range(no_doctor)]
for k in patient_arrival.keys():
    v = patient_doctor[k]
    doctor_patient[v].append(k)
print('doctor_patient',doctor_patient)

6.ok。

doctor_patient = [[24, 5, 16, 7, 35, 47, 48, 17, 28, 4, 39, 26, 3, 12, 0, 32, 8, 19], [46, 30, 36, 41, 25, 33, 45, 6, 21, 40, 20, 13, 27, 43, 2, 15, 29], [1, 18, 14, 37, 49, 34, 42, 22, 9, 38, 23, 44, 31, 10, 11]]
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值