
panic2.py
で使うスライスを以下に示します。リストからデータを抽出しますが、リストは変
更しません。このすべての処理を行う
2
行のコードと、スライスで抽出するデータを次に示します。
new_phrase = ''.join(plist[1:3])
new_phrase = new_phrase + ''.join([plist[5], plist[4], plist[7], plist[6]])
リストのスライスは非破壊的
panic.py
がある文字列を別の文字列に変換するために使うリストメソッドは、リストの元の
状態を変更するという点で破壊的(
destructive
)です。既存リストからオブジェクトを抽出してもリ
ストは変更されないので、リストのスライスは非破壊的(
nondestructive
)です。元のデータはその
まま変更されません。
では、どちらがいいの?
リストメソッドを使って既存リストを変換すると、リストを操作し、かつ変換します。プロ
グラムでリストの元の状態は利用できなくなります。何をするかによっては、これが問題に
なる場合があります(問題にならない場合もあります)。
Python
の角かっこ表記は、既存のイ
ンデックス位置に新たな値を代入しない限り、一般に既存リストを変更しません。スライスを
使ってもリストを変更しません。元のデータは変わりません。
この
2
つの方法のどちらが「優れている」かの判断は、何をしたいかによります(どちらも好
きでなくても全く問題ありません)。実現方法は必ず