使用可链接方法反转列表
在您提供的代码片段中,您尝试使用 .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中文网其他相关文章!