当前位置: 首页> 房产> 建材 > 苏州网页建站服务商_免费照片裁剪工具_百度app安卓版下载_seo诊断分析

苏州网页建站服务商_免费照片裁剪工具_百度app安卓版下载_seo诊断分析

时间:2025/7/13 5:46:09来源:https://blog.csdn.net/weixin_52297428/article/details/146284284 浏览次数:1次
苏州网页建站服务商_免费照片裁剪工具_百度app安卓版下载_seo诊断分析

任务

你有一个列表L,还有一个索引号i,你希望当i是L,的有效索引时获取L[i],若不是有效索引,则返回一个默认值v。如果L是字典,可以使用L.get(i,v)来满足需求,可是列表并没有 get这个方法。

解决方案

很明显,我们得自己写个函数,在这里,最简单直接的方法就是最好的方法

def list_get(L,i,v = None):if -len(L) <= i < len(L): return L[i]else: return v

讨论

解决方案中的函数根据 Python 的索引规则来检査i的有效性:有效索引只能在大于等于-len(L)和小于 len(L)这个区间中。但如果所有传递给 list_get 函数的参数i都是有效的索引,你可能会喜欢另外一种方式:

def list_getegfp(L,i,v = None):try:return L[i]except IndexError:return v

但是,除非传递给此函数的索引绝大多数都是有效索引,否则这个函数(通过某些测试工具测量)将会比解决方案中的list_get函数慢4倍。因此,这个“获得原谅总是比获得许可容易(easier to get forgiveness than permission,EGFP)”的函数,虽然更具有Python 的精神和风格,但在这种特殊的情况下,并不值得推荐,我还试过几个看上去更漂亮、更复杂和更迷惑人的方法,不过,除了更加难于解释和理解之外,它们无一例外地比那个朴实无华的list_get 函数慢。这里给出一个通用的准则:当你写 Python程序时,应当倾向于清晰和可读性,而不是紧凑和精炼–选择简单,而不是精巧。只要你坚持这么做,你常常会发现你的代码跑得更快,而且也更强健,更易于维护。在真实世界中,对于 99.9%的应用而言,遵循这个原则要比获得一点速度提升重要的多。

关键字:苏州网页建站服务商_免费照片裁剪工具_百度app安卓版下载_seo诊断分析

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: