我正在尝试创建一个可以创建列表的缩略图的函数,例如:
def slice(arr, a, b, step):
return arr[a:b:step]
问题是,如果用户想要切片arr [5:]或arr [:5],如何处理好?
答案 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))