首页  >  文章  >  后端开发  >  为什么使用'.reverse()”方法后在列表上调用'.index”会导致'AttributeError”?

为什么使用'.reverse()”方法后在列表上调用'.index”会导致'AttributeError”?

DDD
DDD原创
2024-11-19 09:43:03187浏览

Why does calling `.index` on a list after using `.reverse()` method result in an `AttributeError`?

使用可链接方法反转列表

在您提供的代码片段中,您尝试使用 .reverse() 方法反转列表,然后立即链接反向列表上的另一个方法(.index)。但是, .reverse() 就地修改列表并返回 None,这就是您收到错误 AttributeError: 'NoneType' object has no attribute 'index'.

要避免此问题,您可以使用切片以返回列表的反向副本。使用 [::-1] 进行切片会反转列表中元素的顺序,并创建一个新列表而不修改原始列表:

formation[::-1]

此表达式返回形成列表的反向副本,您可以使用该副本然后可以使用以下方法调用 .index:

def solution(formation):
    return (formation.index(bCamel) > (len(formation) - 1 - (formation[::-1]).index(fCamel)))

通过此修改,解决方案函数将成功确定 'B' (bCamel) 的索引是否在编队列表大于反转编队列表中“F”(fCamel)的索引减去编队列表的长度。这本质上是检查反向排列中“B”是否位于“F”之前。

以上是为什么使用'.reverse()”方法后在列表上调用'.index”会导致'AttributeError”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn