Pythonの配列 listとarrayの違いを知る

スポンサーリンク

Pythonの配列は「list」と「array」の2種類あります。この2種類の配列listとarrayは何が違うのでしょうか?

今回は、Pythonの配列 listとarrayの違いについて解説します。

Pythonの配列 listとarrayの違い

listとarrayのコード

# list
lst = [1, 10, 100]
for i in lst:
    print(i)
#[結果] 1
#[結果] 10
#[結果] 100

Pythonの配列でもっともよく使用されるのが「list」(リスト)です。

参考ページhttps://docs.python.org/ja/3/library/stdtypes.html#sequence-types-list-tuple-range

# array
import array
ary = array.array('i',[1, 10, 100])
for i in ary:
    print(i)
#[結果] 1
#[結果] 10
#[結果] 100

Pythonの配列は「array」もあります。

参考ページhttps://docs.python.org/ja/3/library/array.html

こうして比較してみると「list」と「array」はほとんど同じに見えますが、細かいところでやはり違いがありますね。

listは異なる型が混在できる

まず大きな違いとして、「list」は異なる型が混在できます。

# list
lst = [1, 'python', 100]
for i in lst:
    print(i)
#[結果] 1
#[結果] 'python'
#[結果] 3

この例では数値型と文字列型を混在してlistの中にふくめています。listは型は問いません。

# array
import array
ary = array.array('i',[1, 'python', 100])
#[結果] TypeError: an integer is required (got type str)

一方、「array」は同じ型のみで異なる型は混在できません。「array」の第一引数は「型」です。ここに複数の型を指定することはできません。

上の例では「i」、つまりint型で指定したにもかかわらず、str型をセットしているのでエラーとなりました。

そもそも「array」は数値型を基本としています。「list」は文字列でも数値でもなんでもOKです。

listはimportが不要

# array
import array 
ary = array.array('i',[1, 10, 100]) 

また「list」はimportせずに使えますが、「array」は「import array」としてインポートしないと使えません。

 

「list」と「array」の大きな違いとしてはこの2点です。

使い勝手がいいのはもちろんlist(リスト)です。なので多くの場合、Pythonの配列としては、list(リスト)が使われています。

以上、Pythonの配列、「list」と「array」の違いでした。

コメント