在[:index]上使用动态索引进行列表切片

在[:index]上使用动态索引进行列表切片,第1张

在[:index]上使用动态索引进行列表切片

另一个有趣的潜在解决方案。

>>> arr = [1, 2, 3]>>> index = 0>>> arr[:-index or None][1, 2, 3]>>> index = 1>>> arr[:-index or None][1, 2]

为了在诸如字符串之类的不可变序列类型上获得更高的性能,可以在切片 *** 作 之前 检查index的值来避免在index为0的情况下完全切片序列。

这里是要测试性能的三个功能:

def shashank1(seq, index):    return seq[:-index or None]def shashank2(seq, index):    return index and seq[:-index] or seqdef shashank3(seq, index):    return seq[:-index] if index else seq

后两者应当是 在指数是0的情况下更快,但也可以是在其它情况下更慢(或更快)。


更新的基准代码: http :
//repl.it/oA5

注意:结果在很大程度上取决于Python的实现。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5654238.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存