我正在尝试编写一个函数,该函数将在两个给定值之间分割一个列表。如果停止值超出列表边界,则停止值是列表的长度。如果起始值超出列表范围,我想返回一个空列表。如果起始值小于终止值,我想返回一个空列表。我不想使用除range()
and以外的任何内置函数或方法list.append()
调用该函数的代码是:
str_list = ['s', 'h', 'r', 'u', 'g', 'g', 'e', 'd']
print("\nget_slice Test")
my_slice = list_function.get_slice(str_list, 2, 100)
print(list_function.to_string(str_list))
print(list_function.to_string(my_slice))
my_slice = list_function.get_slice(str_list, 6, 1)
print(list_function.to_string(my_slice))
my_slice = list_function.get_slice(str_list, 2, 5)
print(list_function.to_string(str_list))
print(list_function.to_string(my_slice))
我想要产生的输出是:
get_slice Test
List is: s, h, r, u, g, g, e, d
List is: r, u, g, g, e, d
List is:
List is: s, h, r, u, g, g, e, d
List is: r, u, g
我将函数定义为:
def get_slice(my_list, start, stop):
我试过my_list = my_list[start:stop]
了,但我得到一个“NoneType”对象不是可迭代的错误。我也想尝试使用for k in range(0, length(my_list)):
,因为有人建议我使用range()
,但是我想不出一种可以用于此功能的方法。
对此的任何帮助将不胜感激。