![在[:index]上使用动态索引进行列表切片,第1张 在[:index]上使用动态索引进行列表切片,第1张](/aiimages/%E5%9C%A8%5B%EF%BC%9Aindex%5D%E4%B8%8A%E4%BD%BF%E7%94%A8%E5%8A%A8%E6%80%81%E7%B4%A2%E5%BC%95%E8%BF%9B%E8%A1%8C%E5%88%97%E8%A1%A8%E5%88%87%E7%89%87.png)
另一个有趣的潜在解决方案。
>>> 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的实现。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)