使用元组创建切片

2024-05-15 02:40:53 发布

您现在位置:Python中文网/ 问答频道 /正文

python中有没有方法使用元组作为切片的索引? 以下内容无效:

>>> a = range(20)
>>> b = (5, 12)   # my slice indices
>>> a[b]          # not valid
>>> a[slice(b)]   # not valid
>>> a[b[0]:b[1]] # is an awkward syntax
[5, 6, 7, 8, 9, 10, 11]
>>> b1, b2 = b
>>> a[b1:b2]      # looks a bit cleaner
[5, 6, 7, 8, 9, 10, 11]

这似乎是一个合理的Python语法,所以我很惊讶,我不能这样做。

(更新) 解决办法是:

>>> a[slice(*b)]
[5, 6, 7, 8, 9, 10, 11]

Tags: 方法anismynot切片slicerange
3条回答

您可以使用Python的*args语法:

>>> a = range(20)
>>> b = (5, 12)
>>> a[slice(*b)]
[5, 6, 7, 8, 9, 10, 11]

基本上,您要告诉Python将元组b解压成单个元素,并将这些元素中的每一个作为单个参数传递给slice()函数。

slice最多需要三个参数,但您只给它一个带元组的参数。您需要做的是让python解压它,如下所示:

a[slice(*b)]

a[slice(*b)]怎么样?

这够Python吗?

相关问题 更多 >

    热门问题