加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何通过传递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()调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读