皆さん、お元気でお過ごしでしょうか。
今回は、「Pythonのリストと配列の違い」を中心に詳しく解説します。
PythonのリストとPythonの配列の主な違いは、リストがPythonの標準パッケージの一部であるのに対し、配列の場合は「array」モジュールをインポートする必要がある点です。
Pythonのリストは、いくつかの例外的なケースを除いて、配列データ構造を置き換えます。
この記事もチェック:pythonの配列(リスト)の中で最も多い数を見つける方法を解説(コード付き)
1. リストと配列のデータ格納方法
ご存知のように、データ構造はデータを効率的に格納するために使用されます。
この場合、リストは異種データの値を格納することができます。
つまり、異なるデータ型のデータ項目をPythonのリストに収容することができます。
例えば、以下の様になります。
lst = [1,2,3,4,'Python']
print(lst)
|
結果は以下の通りです。
[1,2,3,4,'Python']
|
一方、配列は、同じ型に属する要素を格納します。
例えば、以下の様になります。
import array
arr = array.array('i', [10, 20, 30, 40])
print(arr)
|
結果は以下の通りです。
array('i', [10, 20, 30, 40])
|
2. 配列の宣言とリストの宣言
Pythonは組み込みのデータ構造として「リスト」を持っています。
そのため、Pythonではリストを宣言する必要がありません。
lst = [1, 2, 3, 4]
|
一方、Pythonの配列は宣言する必要があります。
配列の宣言は以下の方法で行います。
Arrayモジュール
import array
array-name = array.array('format-code', [elements])
|
NumPyモジュール
import numpy
array-name = numpy.array([elements])
|
3. 配列による優れた数学的操作
配列は、数学的な演算を行う際に優位に立ちます。
NumPyモジュールは、データ値を格納し、それらを簡単に操作するための配列構造を提供します。
配列を使った例
import numpy
arr = numpy.array([1,2,3,4])
pr = arr*5
print(pr)
|
結果は、以下の通りになります。
[ 5 10 15 20]
|
リストと異なり、リストに対する操作は結果に反映されません。
ここでは、定数値(5)とリストの掛け算を試していますが、出力には何も反映されません。
なぜなら、リストはどんなデータ値でも直接数学的な操作をすることができないからです。
そのため、リストの要素に5を掛けたい場合は、リストの各要素に個別に5を掛けなければならない。
リストを使った例
lst = [1,2,3,4]
pr = lst*5
print(lst)
|
結果は、以下の通りになります。
[1, 2, 3, 4]
|
4. データ構造のリサイズ
Pythonのリストは、組み込みのデータ構造であるため、非常に簡単かつ効率的にサイズを変更することができます。
一方、配列は、配列のメモリをリサイズするという点では、非常にパフォーマンスが悪いことがわかります。
その代わりに、配列を別の配列にコピーして、サイズを変更する必要があります。
まとめ
ここまでで、このトピックは終了です。
何か疑問があれば、お気軽にコメントください。
参考文献
- Pythonの配列とリスト – StackOverflow