Python将切片作为参数传递

时间:2019-03-21 13:45:52

标签: python slice

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

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]

2 个答案:

答案 0 :(得分:2)

您需要slice构造函数。在这种情况下,该值为slice(1, 4, None)(对应于1:4:)。

答案 1 :(得分: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)