这个问题在这里已有答案:
我想将切片传递给函数,以便我可以选择列表的一部分。作为字符串传递是可取的,因为我将从用户读取所需的片作为命令行选项。
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]
你想要slice
构造函数。在那种情况下,那将是slice(1, 4, None)
(对应于1:4:
)。
只需使用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)