如何仅调用一次List2,基于其值对List1进行切片截取?
可行的实现方式
当然有,以下是几种简洁的实现方法,都只调用一次List2:
推荐写法:
slice函数+解包操作
这是最符合Python风格的简洁写法,利用*解包List2的两个元素作为slice函数的起止参数,再传入列表切片:List1 = [3,4,5,6,8,3,2,4,6,7,8,6] List2 = [4, 7] result = List1[slice(*List2)]这段代码和
List1[List2[0]:List2[1]]完全等价,slice(*List2)会被解析为slice(4,7),实现相同的切片效果,且只引用了一次List2。另类写法(可读性稍弱)
如果你追求极致简短,也可以直接调用列表的__getitem__方法配合解包,但这种写法可读性不如上面的方案,不推荐在正式代码中使用:result = List1.__getitem__(slice(*List2))
内容的提问来源于stack exchange,提问作者Bogaso
相关产品推荐
相关产品推荐

