此代码失败:
fCamel = 'F' bCamel = 'B' gap = ' ' k = ['F', ' ', 'B', 'F'] def solution(formation): return ((formation.index(bCamel) > (len(formation) - 1 - (formation.reverse()).index(fCamel)))) solution(k)
我收到一条异常信息AttributeError: 'NoneType' object has no attribute 'index'。
AttributeError: 'NoneType' object has no attribute 'index'
我知道问题在于list.reverse()返回None,就地修改列表。我想.index在反转列表上使用。有没有办法可以避免在索引列表之前使用单独的语句来反转列表?怎么做?
list.reverse()
None
.index
您说得对,这list.reverse()会就地修改列表并返回None,这就是您看到的原因AttributeError。为了避免此问题,同时仍然能够索引到反向列表中,您可以使用切片来创建列表的反向副本,而不是就地反转它。
AttributeError
您可以按照以下方法修改代码,以使用切片来反转列表:
Python复制代码fCamel = 'F' bCamel = 'B' gap = ' ' k = ['F', ' ', 'B', 'F'] def solution(formation): reversed_formation = formation[::-1] # Create a reversed copy of the list return (formation.index(bCamel) > (len(formation) - 1 - reversed_formation.index(fCamel))) print(solution(k))
在此代码中:
formation[::-1]
formation
.index(fCamel)
这种方法避免修改原始列表并允许您对反转列表执行操作。