我创建了一个从列表中获取指定切片的函数。
def get_slice(my_list, start, stop):
new_list = []
length = 0
for x in my_list:
length = length + 1
if stop > length:
stop = length
start = start - 1
for x in range(start, stop):
x = my_list[x]
new_list.append(x)
elif start > length or start < 1:
return new_list
elif start > stop:
return new_list
else:
start = start - 1
for x in range(start, stop):
x = my_list[x]
new_list.append(x)
print(new_list)
当输入为:
时,一切正常get_slice(['r', 'i', 'g'], 0, 4)
查看代码,我无法理解为什么。给出上面输入的输出应该是一个空列表,如果起始值低于1,我创建了一个elif来覆盖,然后返回一个空列表。
我希望一双新鲜的眼睛能帮助我弄清楚出了什么问题。
答案 0 :(得分:0)
在一组if / elif / else语句中,它只会评估第一个是真的。
在这种情况下,第一个为true的是第一个if stop > length:
场景。您可以使条件更复杂,也可以检查第一个无效方案。