CodeGym /Java Course /Python SELF JA /リストの変更

リストの変更

Python SELF JA
レベル 7 , レッスン 4
使用可能

5.1 要素の追加

Pythonでは、リストに要素を追加する方法はいくつかあって、リストってかなり自由度の高いデータ構造なんだよね。ここでは、Pythonが提供する主なリストに要素を追加する方法を紹介するよ:

メソッドを使う append()

append()メソッドは、リストの最後に要素を追加するよ。これは一番シンプルで、よく使われる方法だよね:


my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 出力は [1, 2, 3, 4] 
        

メソッドを使う extend()

extend()メソッドは、複数の要素を一気にリストに追加できるんだ。引数にはイテラブルなオブジェクト(例えば、他のリスト、タプル、セットなど)を取るよ:


my_list = [1, 2, 3, 4]
my_list.extend([5, 6])
print(my_list)  # 出力は [1, 2, 3, 4, 5, 6]
        

メソッドを使う insert()

insert()メソッドは、指定した位置に要素を追加できるよ。このメソッドは2つの引数を取り、1つは要素を置くインデックス、もう1つはその要素。


my_list = [1, 2, 3, 4, 5, 6]
my_list.insert(0, 0)
print(my_list)  # 出力は [0, 1, 2, 3, 4, 5, 6]
    

演算子で要素を追加する

リストを「+」演算子で結合することもできるよ。これも他のリストの要素を追加する方法だね:


my_list = [0, 1, 2, 3, 4, 5, 6]
my_list = my_list + [7, 8]
print(my_list)  # 出力は [0, 1, 2, 3, 4, 5, 6, 7, 8]
        

注意点

append()extend()を使うと、元のリストが変更されるよ。でも「+」を使うと新しいリストが作られるから、古いリストの参照が残っているときはそのままなんだ。

5.2 要素の直接変更

Pythonでリストの要素を変更するのは簡単だよ。リストってミュータブル(変更可能)だから、そのままの場所で変更できて、新しいコピーを作る必要がないんだ。こんな感じで扱うことができるよ:

要素の直接変更

リスト内の要素を変更するには、インデックスで新しい値を割り当てるだけでOK:


my_list = [1, 2, 3, 4]
my_list[2] = 30 
print(my_list)  # 出力は [1, 2, 30, 4] 
        

5.3 要素の範囲を代入する:

Pythonでは、リスト内の範囲を割り当てるのにスライスを使うんだ。スライスを使えば、サブリストを得るだけじゃなくて、割り当てることもできる。これがPythonのリストを特に柔軟にして、データシーケンスを操作するのに便利なんだ。

スライスを使って代入する

スライスはPythonにおいて、一度に複数の要素を変更するのに使えるんだ。例えば、リストの一部を別の値に置き換えることができる。スライスを指定して、新しい要素リストをそれに割り当てる:


numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers[2:5] = [20, 30, 40]
print(numbers)  # 出力は [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]
        

等号の左側と右側の要素数は一致する必要はない。

右側の要素が多いこともある:


numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers[2:2] = [20, 30, 40]
print(numbers)  # 出力は [0, 1, 20, 30, 40, 2, 3, 4, 5, 6, 7, 8, 9]
        

または少ない:


numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers[2:9] = [20, 30, 40]
print(numbers)  # 出力は [0, 20, 30, 40, 9]
        

こんな感じで、とてもコンパクトなコードが書けるけど、スライスを使う場合は、最後の要素が範囲に含まれないことを忘れないでね。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION