前回まではリストに新たにデータを追加したりくっつけたりという方法について確認してきましたが、今回はリストの中のデータを別のデータに挿げ替える方法について解説いたします。
インデックスを指定してデータの入れ替えを行う
まずは、インデックスを指定し特定の一つのデータを、別のデータに入れ替える方法について確認します。インデックスを指定する場合は箱の中のデータを指定するので中のデータを別のものに入れ替えることができます。
なのでインデックスを指定し、リストを代入したりすると2次元配列にすることも可能です。

データを入れ替える場合は「=」の代入演算子を用いてそのインデックスにデータを代入し新たに上書きします。
それでは実際にコードで確認してみます。
1 2 3 4 5 6 7 8 9 10 11 |
#リストのデータ入れ替え fruit= ["Grape","Banana","Orange"] fruit[1] = "Apple" print(fruit) #['Grape', 'Apple', 'Orange'] #リストのデータをリストに入れ替えて2次元配列を作成 animals = ["Cat","Dog","Monkey"] animals[1] = ["Shepherd" , "Bulldog" , "Chihuahua"] print(animals) #['Cat', ['Shepherd', 'Bulldog', 'Chihuahua'], 'Monkey'] |
スライスで指定して要素の入れ替えを行う
それでは次にスライスを指定してリストの要素を入れ替えます。インデックスの指定の場合はデータのみの指定となりますが、スライスの場合はリストごと切り出しますので入れ替えたい値がある場合はリストで入れなおす必要があります。

それではコードを確認します。
1 2 3 4 5 6 7 8 9 10 11 |
#リストの一部を切り出して別の要素に挿げ替える color_list = ["red" , "blue" , "kiiro" , "kuro" , "white"] color_list[2:4] = ["yellow" , "black"] print(color_list) #['red', 'blue', 'yellow', 'black', 'white'] #一か所だけをスライスで指定して、複数の要素を入れ替える week = ["Sun","Mon","Tue","Someday","Sat"] week[3:4] = ["Wed","Thu","Fri"] print(week) #["Sun","Mon","Tue","Something","Sat"] |
因みにスライスで指定して、リストではなく文字列データや数値データを入れた場合はどうなるのかも見てみます。
1 2 3 4 5 |
#文字列データが一文字ずつ分割されて入れ替えられる fruit = ["Grape","Banana","Orange"] fruit[1:2] = "apple" print(fruit) #['Grape', 'a', 'p', 'p', 'l', 'e', 'Orange'] |
文字列の「apple」を代入した場合はappleの文字列が一文字ずつに分裂して代入されてしまいました。これは文字列データがシーケンス型のデータであるため、文字列データを一文字ずつデータが入ったリストだとみなし、代入されてしまったためです。
次に数字リテラルのリストについて確認します。
1 2 3 4 5 |
#TypeErrorが発生! numlist = [1,2,0,4,5] numlist[2:3] = 3 #TypeError: can only assign an iterable print(numlist) |
この場合は「TypeError」になってしまいました。スライスはリストとして、つまりシーケンス型のデータを切り出すのでシーケンス型ではない数値リテラルを代入しようとするとTypeErrorを起こしてしまったというわけです。
以上で、リストの要素の入れ替えについては完了です。
基本的にはリストの要素を入れ替える場合は後に解説いたします繰り返し処理等を持ち合わせながら実施することになると思いますので、それらと一緒に覚えていく形になると思います。
今回は以上です。お疲れ様でした。
コメント