l = [{'id':13,'title':'2222','rank':1},{'id':25,'title':'33fff','rank':2},{'id':53,'title':'hhhh','rank':3},{'id':73,'title':'ffff','rank':4},{'id':23,'title':'kkkkk','rank':5}]
这个列表是根据rank排序的,现在我想根据指定的id获取前一个和后一个对象
比如,id=73时,获取到{'id':53,'title':'hhhh','rank':3}和{'id':23,'title':'kkkkk','rank':5}
id=13时,获取到{'id':25,'title':'33fff','rank':2}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
先建立 id 与所需值的字典关系:
然后,一个简单的函数就可以调取前后值了:
最终运行结果:
这种方式,效率上相对高一些,一方面字典取值速度更快,另一方面每次寻址都只需要寻一层,且建立的序列和字典可以重复多次调用。
当然,还有一种更高效的方式,但必须导入
collections模块,具体可以参考:python 的有序字典