Pythonのリストのappend()の使い方【初心者向け完全解説】
目次
- Pythonのリストのappend()の使い方
- append()でリストにデータを追加する
- appendの性能
- extend()でリストを結合する
- insert()でリストの先頭にデータを追加する
- おわりに
Pythonのリストのappend()の使い方
Pythonではリスト(list)を使うことができます。
リストを使うと異なるデータを同じリストにまとめることが可能です。
リストにデータを追加する際に使われるのが「append()」というリストのメソッドです。
このappend()
を使うとリストにデータを追加できます。
この記事ではリストのappend()の使い方について詳しく解説します。
関連記事
Pythonのリストにデータを追加(append)する方法【extend, insert, スライス】
Pythonのappendをfor文で使う方法【初心者向け】
Pythonのリストにデータを追加(append)する方法【extend, insert, スライス】
Pythonでbytes型をstr型に(byte to string)変換する
Pythonで複数のフォルダを作成する方法【os.mkdir, os.makedirs】
append()でリストにデータを追加する
↓のようなリストがありますが、これにデータを追加します。
lis = [1, 2, 3]
↓のようにlis.append(4)
とやるとリストにデータを追加できます。
lis = [1, 2, 3] lis.append(4) print(lis) # [1, 2, 3, 4]
append()
に渡せるデータは制限はありません。
整数、実数、文字列、リスト、辞書など、あらゆるデータを渡すことができます。
lis = [] lis.append(1) lis.append(2.34) lis.append('Hey') lis.append([3, 2, 1]) lis.append({'a': 1, 'b': 2}) print(lis) # [1, 2.34, 'Hey', [3, 2, 1], {'a': 1, 'b': 2}]
appendの性能
Pythonのリストのappend()
は一般的に遅いと言われています。
そのためappend()
を頻繁に呼び出すコードは速度に影響が出る可能性があります。
ただ、普通のスクリプトを書く分にはそこまで神経質になる必要はありません。
感覚的に「append, 遅いのか~」ぐらいに考えていただいて問題ありません。
たとえば数列を生成してリストに保存したい、というケースです。
こういう場合はリスト内方表記などを使ったほうが早くなります。
あとrange()
を使う方法もあります。
↓のようなコードであなたの環境で性能を比較してみてください。
import time N = 10000000 # append start = time.time() lis = [] for i in range(N): lis.append(i) calc_time = time.time() - start print('append', calc_time) # リスト内包表記 start = time.time() lis = [i for i in range(N)] calc_time = time.time() - start print('リスト内包表記', calc_time) # range start = time.time() lis = list(range(N)) calc_time = time.time() - start print('range', calc_time)
筆者の環境では↑のコードは↓のように出力されます。
append 0.673255443572998 リスト内包表記 0.4084479808807373 range 0.22179508209228516
結果を見るとrange()
が一番早いですね。
これはWindowsのWSL2のUbuntu20.04で実行した結果です。
Windows環境やMac環境ではまた違った結果になると思われます。
こういったテストは環境にけっこう左右されます。
あっちの環境とこっちの環境で同じコードを実行したら結果に差が出た、というようなことがよくあります。
ですのでスクリプトを動かしたい環境でコードをテストして、検討してみてください。
テストコードは1回だけでなく、何回か計測してその平均を取る、というのがよりベターかと思われます。
extend()でリストを結合する
append()
と関連するメソッドとしてextend()
があります。
これはリストの末尾に別のリストを連結するメソッドです。
↓のように使います。
lis = [1, 2, 3] lis.extend([4, 5, 6]) print(lis) # [1, 2, 3, 4, 5, 6]
↑の結果を見ると[1, 2, 3]
というリストに[4, 5, 6]
というリストが結合されているのがわかります。
複数のデータを同時にリストに追加したい場合はこのようにextend()
が便利です。
insert()でリストの先頭にデータを追加する
これもappend()
に関連するメソッドですがinsert()
というメソッドもあります。
これを使うとリストの先頭にデータを追加することができます。
たとえば↓のようにです。
lis = [1, 2, 3] lis.insert(0, 4) print(lis) # [4, 1, 2, 3]
lis.insert(0, 4)
の第1引数は挿入先のインデックス、第2引数は挿入するデータです。
このコードでは0
番目の位置にデータ4
が挿入されます。
おわりに
今回はリストのappend()
の使い方を解説しました。
リストにデータを追加したい場合はappend()
を使っておきましょう。
数列などを生成したい場合はリスト内方表記やrange()
使ったほうが楽です。
また、環境によりますが速度面でもそのほうが有利な場合があります。
append()でデータを追加しよう
「append」は「追加する」って意味だよ
関連動画
関連記事
- Pythonのリストにデータを追加(append)する方法【extend, insert, スライス】
- Pythonでbytes型をstr型に(byte to string)変換する
- Pythonで複数のフォルダを作成する方法【os.mkdir, os.makedirs】
- Pythonの可変長引数(*args, **kwargs)にリスト、タプル、辞書を展開して渡す
- Pythonでべき乗する方法(**演算子とpow関数)
- Pythonのstr.split()で最初だけ分割する
- PythonのGUIライブラリTkinterでウィンドウを作る方法
- Pythonでファイル出力(CSV形式で)【適当な方法とちゃんとした方法】