我想将切片传递给函数,以便可以选择列表的一部分。最好以字符串形式传递,因为我将从用户那里读取所需的切片作为命令行选项。
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]
答案 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)