今回は、配列に新規にデータを追加するときに用いる「append」関数や「extend」関数、「insert」関数などの使い方を学習していきましょう。
参考:Pythonでリストに要素を追加する方法【append, extend, insert】(スライス)
参考:【Python入門】初めてのプログラミング(辞書型配列編)
また、最初に配列を定義したのちにデータを代入していく方法と、これらの関数を用いた場合での処理速度の違いについても見ていきましょう!
処理速度までを考えてプログラムを記述できるようになれば、間違いなくレベルが上がるので頑張っていきましょう!
今日はたくさんの関数を学んでいくよ!
今回のは、すべて配列に新しい要素を追加するということでいいの?
そうだよ!ただし、使い方がそれぞれ異なるので注意してみていこう!
無料オンライン相談を活用しよう!
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
コンテンツ
Let’s practice a little!!
append関数について
最初は一番簡単なappend関数から見ていこう!
append関数の使い方はこんな感じです。
- (配列名).append(追加するデータ)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
a = [1, 2, 3] a.append(4) print(a) #[1, 2, 3, 4] a.append(["鳥"]) print(a) #[1, 2, 3, 4, ['鳥']] a.append((1, 2, "bird")) print(a) #[1, 2, 3, 4, ['鳥'], (1, 2, 'bird')] |
追加するデータに関しては、数字でも、文字でも、配列でも大丈夫です。
append関数は、配列の末尾にデータが追加されます。
配列を追加しても、データは結合されないので注意が必要です。
便利やの~う!
extend関数について
次にextend関数やで!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
a = [1, 2, 3] a.extend(4) #TypeError!! print(a) # [1, 2, 3] a.extend(["鳥"]) print(a) #[1, 2, 3, '鳥'] a.extend((1, 2, "bird")) print(a) #[1, 2, 3, '鳥', 1, 2, 'bird'] |
extend関数の使い方はこんな感じです。
- (配列名).extend(追加するデータ)
「extend」の後は、append関数とは違い、リストやタプルのみを追加できる。
extend関数も配列の末尾にデータが追加されます。
また、append関数との大きな違いは、追加したデータが結合されているという点です。
insert関数について
最後にinsert関数やで!
1 2 3 4 5 6 7 8 9 10 11 12 13 |
a = [1, 2, 3] a.insert(0, 4) print(a) #[4, 1, 2, 3] a.insert(-1, ["鳥"]) print(a) #[4, 1, 2, ['鳥'], 3] a.insert(3, (1, 2, "bird")) print(a) #[4, 1, 2, (1, 2, 'bird'), ['鳥'], 3] |
insert関数の使い方はこんな感じです。
- (配列名).insert(挿入したい位置, 追加するデータ)
この関数は、第一引数に追加したい位置を指定します。先頭は「0」から始まり、末尾の一つ前に追加したい場合は「-1」を使うと便利です。第二引数は追加したいデータを入力します。データはリストでもタプルでも大丈夫です。
Let’s practice more!!
処理速度の確認
今回の記事は2本立てで後半は処理速度についてみていきましょう!
処理速度を求めるとき、人間が感覚的に早い、遅いを判断するわけではないので、実際の処理時間を求めるための方法をまずは確認していきましょう!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import time #timeモジュールのインポート start = time.time() #プログラムの開始時刻 result = 0 for i in range(100000001): result += i end = time.time() #プログラムの終了時刻 runTime = end - start #処理時間の計算 print(runTime) #13.468300819396973 print(result) #5000000050000000 |
少し解説を加えると、コンピュータに時間が組み込まれているのですが、開始時刻と、終了時刻を変数としてデータを格納し、差を求めることで処理時間を表示しています。
処理速度の比較
それでは、本記事のメインテーマである、包括表記を使うことでどのくらい処理時間が変わってくるのかを確認していきましょう!
以降のコードでの時間を求めるための記述は同じなので省略します。
比較する方法としては、
- 配列の大きさを最初に定義し代入する方法
- 空の配列にappend関数を用いて逐一配列にデータを追加する方法
- 内包表記で記述する
どれが早いと思いますか?
配列の大きさを最初に定義し代入する方法
1 2 3 4 5 6 7 8 |
#配列の大きさを最初に定義し代入する方法 a = [0] * 100000000 for i in range(100000000): a[i] = i print(runTime) #14.097 |
空の配列にappend関数を用いて逐一配列にデータを追加する方法
1 2 3 4 5 6 7 8 9 |
#空の配列にappend関数を用いて逐一配列にデータを追加する方法 a = [] for i in range(100000000): a.append(i) print(runTime) #16.643 |
内包表記で記述する
1 2 3 4 5 6 |
#包括表記で記述する a = [i for i in range(100000000)] print(runTime) #12.981 |
参考:【Python入門】初めてのプログラミング(内包表記)
配列「a」に格納されているデータはすべて同じなのですが、実行時間にそれぞれ2秒ほど差が出ました。
結果としては、append関数を用いて逐一データを追加する場合に時間がかかりましたね。
理由としては、もともと配列に入っているすべてのデータを複製し、一つのデータを追加したものを配列に代入しなおすからです。(ここは知らなくてもいいです。)
覚えておきたいのは、大量のデータを扱うときには、できるなら包括表記で記述することで処理時間を短縮できるということです。
また、最初にメモリやデータ量を定義を行ってから代入を行うほうが処理時間的には良いということです。
Today’s final practice!!
まとめ
今回の記事では、配列に要素を追加するための関数として、「apend」、「insert」、「extend」の使い方を説明いたしました。また、それらを使った場合の処理速度についても記述しました。
単にプログラムを組むだけではなく、処理速度や無駄な処理をなくすためのコードの記述も大事なスキルです。頑張っていきましょう!
参考:Pythonでリストに要素を追加する方法【append, extend, insert】(スライス)
本日の理解度調査
今日の最後に理解度調査をします!!
どうすれば正しくなるのか考えてみてね!!
Q. insert関数とappend関数を用いて、出力結果となるようにデータを追加せよ
1 2 3 4 5 6 7 8 9 |
a = [i for i in range(5)] b = [] for i in a: b.insert(???) #ここに入れる式はなにかな? b.append(???) #ここに入れる式はなにかな? print(b) #[4, 3, 2, 1, 0, 0, 1, 2, 3, 4] |
正解は。。。
1 2 3 |
for i in a: b.insert(0, i) b.append(i) |
わかったかな??正解出来たら今回の項目は完璧だね!!
無料の説明会を有効活用しよう!
独学での学習は孤独感を感じやすく挫折してしまう初心者も多いです。また、参考書を購入しても全く読む気にならないという方も多いはずです。
それでも、なんとかPythonの勉強を行い、高スキルなエンジニアを目指したいという方は無料で受けられるオンライン説明会に参加してみることも一つの手です。
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
パソコン操作にお困りではありませんか?
ExcelやWordなど、基本的なソフトの使い方がいまいちわからないという方には、「PCHack」という講座をオススメしています。スクールの中でもコストパフォーマンスに優れ、オンラインなのでどこでも好きな時間に学習できます。
3万円ほどでPC初心者を脱出したい方は参考にしてください。
【PC初心者必見!】パソコンの勉強方法が分からないならPCHack講座がオススメ!