Pythonのリストと配列の違いについて分かりやすく解説する

スポンサーリンク

皆さん、お元気でお過ごしでしょうか。

今回は、「Pythonのリストと配列の違い」を中心に詳しく解説します。

PythonのリストとPythonの配列の主な違いは、リストがPythonの標準パッケージの一部であるのに対し、配列の場合は「array」モジュールをインポートする必要がある点です。

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
タイトルとURLをコピーしました