使用函数进行python任意切片
我正在尝试创建一个函数,该函数可以生成列表的任意部分,例如:使用函数进行python任意切片,python,list,Python,List,我正在尝试创建一个函数,该函数可以生成列表的任意部分,例如: def slice(arr, a, b, step): return arr[a:b:step] 问题是,如何处理用户是否希望切片arr[5:]或arr[:5]以一种好的方式?省略切片中的值相当于使用None,因此我建议使用此函数签名: def slice_(arr, start=None, stop=None, step=None): return arr[start:stop:step] 建议不要在函数
def slice(arr, a, b, step):
return arr[a:b:step]
问题是,如何处理用户是否希望切片arr[5:]或arr[:5]以一种好的方式?省略切片中的值相当于使用
None
,因此我建议使用此函数签名:
def slice_(arr, start=None, stop=None, step=None):
return arr[start:stop:step]
建议不要在函数中使用名称slice
,因为它是阴影
注意:您不需要为此功能定义自己的函数。使用动态输入对对象进行切片的一种更具Python风格的方法是直接使用getitem:
arr[slice(a,b,step)]
这已存在于标准库中
>>> import operator
>>> operator.getitem(arr, slice(start, stop, step))
但是已经有一个函数可以做到这一点。它是
list.\uuuu getitem\uuuuu
。此外,已经有了内置的&1,您有非常旧的Python版本!而且它不适用于步骤,并且它与2.7对象模型中不推荐使用的部分挂钩。