リスト反転のためのメソッドチェーン
リストを操作する場合、別のステートメントを明示的に使用せずに反転コピーを作成することが望ましいことがよくあります。ただし、組み込みの list.reverse() メソッドは None を返し、その場でリストを変更します。
問題
次のコードを考えてみましょう。
k = ['F', ' ', 'B', 'F'] def solution(formation): return (formation.index(bCamel) > (len(formation) - 1 - (formation.reverse()).index(fCamel))) solution(k)
このコードは、反転されたリスト内の 2 つの文字 (bCamel と fCamel) のインデックスを比較しようとします。ただし、list.reverse() が None を返し、(formation.reverse()) を None のままにするため、AttributeError が発生します。
解決策: 代わりに Slicing
を使用します。 list.reverse() に依存すると、スライスを使用して反転されたデータを取得できます。 list:
reversed_formation = formation[::-1]
構文 [::-1] は、リストをその場で変更せずに反転します。その後、必要に応じて reversed_formation を使用できます:
def solution(formation): reversed_formation = formation[::-1] return (formation.index(bCamel) > (len(formation) - 1 - reversed_formation.index(fCamel)))
以上が元のリストを変更せずにPythonでリストを逆にする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。