使用函数进行python任意切片

时间:2018-03-22 20:12:36

标签: python list

我正在尝试创建一个可以创建列表的缩略图的函数,例如:

def slice(arr, a, b, step):
        return arr[a:b:step]

问题是,如果用户想要切片arr [5:]或arr [:5],如何处理好?

2 个答案:

答案 0 :(得分:2)

省略切片中的值等同于使用None,因此我建议使用此函数签名:

def slice_(arr, start=None, stop=None, step=None):
    return arr[start:stop:step]

建议不要将名称slice用于您的功能,因为它会影响the built-in class

注意:您无需为此功能定义自己的功能。使用动态输入切割对象的更Pythonic方法是直接使用getitem:

arr[slice(a,b,step)]

答案 1 :(得分:0)

这已存在于标准库

>>> import operator
>>> operator.getitem(arr, slice(start, stop, step))