首頁  >  文章  >  後端開發  >  為什麼使用'.reverse()”方法後在清單上呼叫'.index”會導致'AttributeError”?

為什麼使用'.reverse()”方法後在清單上呼叫'.index”會導致'AttributeError”?

DDD
DDD原創
2024-11-19 09:43:03184瀏覽

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