たとえば iftableState
はタプルで、変数を宣言しています:
x = tableState[1][:]
どういう[:]
意味ですか?
タプル自体への参照ではなく、タプルのコピーを取ります。
構文は、デフォルトの[:]
開始値と終了値 (0 とリストの長さ) を持つスライスであり、それらのインデックスを持つ新しいタプルを返すため、実質的にコンテンツの正確なコピーになります。
タプルの場合、タプルは不変であるため、これはあまり意味がありません。インデックスの参照先を変更せずに、タプルへの参照を安全に渡すことができます。
ただし、リストでも同じように機能します。コンテンツを変更できるようにするために、リストのコピーを作成する必要があることがよくあります。デフォルトの「すべての要素」スライスを使用すると、それを行うための適切で簡潔で高速な方法になります。
一般に、タプルのコピーを抽出しています。ただし、タプルは不変であるため、タプルのコピーを取得してもあまり効果がないことに注意してください。リストを使用するとはるかに便利です。