皆さん、お元気でお過ごしでしょうか。
今回は、「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