ホームページ  >  記事  >  バックエンド開発  >  `.reverse()` メソッドを使用した後にリストに対して `.index` を呼び出すと、なぜ `AttributeError` が発生するのでしょうか?

`.reverse()` メソッドを使用した後にリストに対して `.index` を呼び出すと、なぜ `AttributeError` が発生するのでしょうか?

DDD
DDDオリジナル
2024-11-19 09:43:03187ブラウズ

Why does calling `.index` on a list after using `.reverse()` method result in an `AttributeError`?

チェーン可能なメソッドを使用したリストの反転

指定したコード スニペットでは、.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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。