如何通过传递Python中的函数返回的列表或元组来切割列表?
发布时间:2020-12-20 12:10:07 所属栏目:Python 来源:网络整理
导读:我有lambda函数如下: e_by_p = 20prange_py = lambda x: (e_by_p*x-e_by_p,e_by_p*x) 所以产出如下: prange_py(1)# (0,20)prange_py(2)# (20,40)prange_py(3)# (40,60)# goes like that 所以我希望用这个函数返回的值来切割列表.例如,假设我有一个列表如下
我有lambda函数如下:
e_by_p = 20 prange_py = lambda x: (e_by_p*x-e_by_p,e_by_p*x) 所以产出如下: prange_py(1) # (0,20) prange_py(2) # (20,40) prange_py(3) # (40,60) # goes like that 所以我希望用这个函数返回的值来切割列表.例如,假设我有一个列表如下: numbers = list(range(100,200)) # This is a default way to slice numbers[0:20] # [100,...,119] # Using my function,passing <x> arg as 1 numbers[prange(1)[0]:prange(1)[1]] 但是,这不是我想要做的.这是(i)太丑,(ii)两次执行相同的功能.所以我想知道是否有一种方法可以传递一个函数的返回值,它是元组或列表作为列表的切片参数. 解决方法
您可以使用
slice() 创建切片对象,并将函数结果作为参数传递:
numbers[slice(*prange_py(1))] *解包prange_py()返回的元组,并将其作为参数传递给slice()调用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |