チェーン可能なメソッドを使用したリストの反転
指定したコード スニペットでは、.reverse() メソッドを使用してリストを反転し、すぐにチェーンしようとしています。逆リストの別のメソッド (.index)。ただし、.reverse() はリストをインプレースで変更し、None を返すため、「AttributeError: 'NoneType' object has noattribute 'index'.
」というエラーが発生するのはこのためです。この問題を回避するには、次のようにします。スライスしてリストの逆コピーを返します。 [::-1] でスライスすると、リスト内の要素の順序が逆になり、元のリストを変更せずに新しいリストが作成されます。
formation[::-1]
この式は、形成リストの逆コピーを返します。次に、
def solution(formation): return (formation.index(bCamel) > (len(formation) - 1 - (formation[::-1]).index(fCamel)))
で .index を呼び出すために使用できます。この変更により、ソリューション関数は、フォーメーション リスト内の 'B' (bCamel) のインデックスが 'F のインデックスより大きいかどうかを正常に判断します。 ' (fCamel) を反転したフォーメーション リストからフォーメーション リストの長さを差し引いたもの。これは基本的に、逆の形式で「B」が「F」の前に来るかどうかを確認するチェックです。
以上が`.reverse()` メソッドを使用した後にリストに対して `.index` を呼び出すと、なぜ `AttributeError` が発生するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。