我有一个函数 middle(c) 接受列表 c 作为输入并输出列表 c,我需要解决的问题是输出没有第一个和最后一个元素的列表。我的代码如下。
def middle(c):
del c[0]
del c[-1]
return middle(c)
它在运行代码后给了我这个异常“列表分配索引超出范围”我遇到了一些类似的问题,我返回 c[0] 来查找列表的第一个有效元素,所以问题可能出在 return 语句上?
最简单的方法是将所有内容从索引 1 拉到 -1。
def middle(c):
return c[1:-1]
最初在我的回答中,我错误地指出 c[1::-1] 会导致IndexError
ifc
的长度为 0 或 1。这是因为切片列表实际上并没有像我预期的那样在每个索引处拉动每个元素。
切片可以更恰当地描述为检查索引是否存在,然后提取结果切片的值。因此,在表达式中,[][1::]
python 尝试从列表中获取每个元素的切片,但第一个。当没有找到满足该条件的元素时,不会将任何元素添加到结果列表中,并且不会抛出 IndexError`。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句