小能豆

如何获取列表的反向副本(在 .reverse 后链接方法时避免使用单独的语句)?

javascript

此代码失败:

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'

我知道问题在于list.reverse()返回None,就地修改列表。我想.index在反转列表上使用。有没有办法可以避免在索引列表之前使用单独的语句来反转列表?怎么做?


阅读 51

收藏
2024-07-24

共1个答案

小能豆

您说得对,这list.reverse()会就地修改列表并返回None,这就是您看到的原因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)此反转副本而不会影响原始列表。

这种方法避免修改原始列表并允许您对反转列表执行操作。

2024-07-24