`.reverse()` 메서드를 사용한 후 목록에서 `.index`를 호출하면 `AttributeError`가 발생하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-11-19 09:43:03
원래의
157명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿