Python传递切片作为参数[重复]

问题描述 投票:1回答:2

我想将切片传递给函数,以便我可以选择列表的一部分。作为字符串传递是可取的,因为我将从用户读取所需的片作为命令行选项。

def select_portion(list_to_slice, slicer):
    return(list_to_slice[slicer])

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
slicer = "1:4"

print(select_portion(numbers, slicer))

我得到以下内容:

TypeError: list indices must be integers or slices, not str

这是可以理解的,但我不知道如何修改它以获得预期的输出:

[1, 2, 3]
python slice
2个回答
2
投票

你想要slice构造函数。在那种情况下,那将是slice(1, 4, None)(对应于1:4:)。


1
投票

只需使用slice

def select_portion(list_to_slice, slicer):
    return(list_to_slice[slicer])

sl = slice(1, 4, None)

select_portion([1,2,3,4,5], sl)
© www.soinside.com 2019 - 2024. All rights reserved.