python slice函数怎么取列表的最后一个数_不使用slice函数的列表切片

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:19   2576   0

我不知道列表输入应该如何分隔,所以我不打算在我的答案中包含它。事实上,我只是假设我们从用户那里收到了一个格式正确的列表,只需要调用该列表上的函数。在

您的函数需要3个参数,start,end,以及{}本身,因为这是切片任务的最低要求。在def slice(lst, start, end):

{cd4>循环中最简单的元素是循环。毕竟,你可以使用索引符号。在

首先必须创建一个空列表,其中只包含适当的元素。我们将这个列表称为output列表。在

^{pr2}$

然后,我们可以遍历start和{}之间的所有整数,因为列表索引是整数。在for i in range(start, end):

output.append(lst[i])

在函数的末尾,您需要返回output列表,这样您就得到了一个实际切片的list对象。在return output

综合起来:# some shebangs here

'''

Some docstring here

'''

# some imports here

# receive user input. You need a list and two integers.

# lst = input()

# start = input()

# end = input()

def slice(lst, start, end):

output = []

if not(0 <= start < len(lst)):

return output

elif not(start <= end < len(lst)):

return output

else:

for i in range(start, end+1):

output.append(lst[i])

return output

print(slice(lst, start, end))

为什么你原来的剧本不起作用?

代码的问题在最后一行。如果您这样做:for i in list1:

list2.append(list1[i])

return(list2)

首先,i是被迭代的元素,不是是元素的索引。第二,返回终止函数,因此终止循环。因此,脚本不仅会抛出一个IndexError,而且即使您幸运,它也会返回一个只有一个元素的列表。您可以这样修改它:for i in list1:

list2.append(i)

return list2

这是可行的,只是现在我们忽略了start和end参数。{13>为什么选择这个函数。如果你想用Pythonic的方法来枚举的话,可以使用Pythonic的方法。在for index, element in enumerate(list1):

if start <= index <= end:

list2.append(element)

return list2

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP