PHPにおける配列をPythonではどう表現するのか?【リスト型、辞書型】

PHPにおける配列をPythonではどう表現するのか?【リスト型、辞書型】 プログラミング

この記事では、PHP経験者がPythonを学ぶ過程で戸惑った箇所について説明しています。
新しいプログラミング言語である以上、いろいろと戸惑った箇所はあります。

今回は、その中でも最も戸惑った「配列」について説明します。
「配列」をPythonではどう表現するのか?
実践で使える内容まで解説しています。

本記事の内容

  • PHPにおける2つの配列
  • 通常の配列(添字配列)はリスト型(list)
  • 連想配列は辞書型(dictionary)
  • PHPにおける配列はリスト型と辞書型だけでOK

この記事では、PHPプログラマーにとっては有益になるはずです。
Pythonの習得において、時間を節約できるようになることは確実と言えます。

それでは、「配列」を説明していきます。

PHPにおける2つの配列

PHPで配列と言えば、以下の2つが存在します。

  • 通常の配列(添字配列)
  • 連想配列

ここでは「配列とは?」を説明しません。
なぜなら、PHPで散々「配列」を扱ってきたプログラマーを読者対象としているからです。

2つの配列の定義を確認するための説明はします。
同じ認識を持つ「配列」がイメージされていることの確認ですね。

通常の配列(添字配列)

配列を初期化(宣言)して、その配列に値を追加する処理です。

$ary = array();
array_push($ary, 'a');
array_push($ary, 'b');
array_push($ary, 'c');

print_r($ary)

実行結果は以下。

Array
(
    [0] => a
    [1] => b
    [2] => c
)

普段から、PHPでは添字配列をこのように扱っています。
何も難しいところはありませんね。

連想配列

配列を初期化(宣言)して、その配列に値を追加する処理です。
いろいろな方法はありますが、これが最も簡単でしょう。

$ary = array();
$ary["zero"] = 'a';
$ary["one"] = 'b';
$ary["two"] = 'c';

print_r($ary)

実行結果は以下。

Array
(
    [zero] => a
    [one] => b
    [two] => c
)

添字配列は、index(数字)によりデータを指定でます。
それに対して、連想配列はキー(文字列OK)でデータを指定します。

2つの配列に関しては、同じ認識でOKですね?
この認識を前提として、Pythonでの「配列」を解説していきます。

通常の配列(添字配列)はリスト型(list)

PHPにおける添字配列は、リスト型(list)と覚えましょう。
これで何一つ困りません。

では、実際のコードを確認します。
リスト型データの初期化(宣言)は、[]です。

ary = []
ary.append('a')
ary.append('b')
ary.append('c')

print(ary)

print(ary[0])
print(ary[1])
print(ary[2])

実行結果は以下。

['a', 'b', 'c']
a
b
c

Pythonでは、print_rのように添字まで表示する関数が見当たりません。
そのため、ary[0]と言う具合に添字を使って値を表示しています。

どうでしょうか?
PHPにおけるただの配列(添字配列)と同じだとわかりますよね。

よって、PHPにおける添字配列はlist型で表現しましょう。
これで困ることはありません。

連想配列は辞書型(dictionary)

PHPにおける連想配列は、辞書型(dictionary)と覚えましょう。
添字配列と同じように、これで全く困りません。

では、実際のコードで辞書型を確認します。
辞書型データの初期化(宣言)は、{}です。

ary = {}
ary["zero"] = 'a'
ary["one"] = 'b'
ary["two"] = 'c'

print(ary)

print(ary["zero"])
print(ary["one"])
print(ary["two"])

このプログラミングの実行結果は、以下。

{'zero': 'a', 'one': 'b', 'two': 'c'}
a
b
c

問題ありませんね。
辞書型へのデータ追加の方法は、PHPにおける連想配列と全く同じでいけます。

もちろん、利用する際も同じような表現となります。

PHPにおける配列はリスト型と辞書型だけでOK

  • 通常の配列(添字配列)はリスト型(list)
  • 連想配列は辞書型(dictionary)

上記の考え方で、「配列」をPython上で扱えるはずです。
今のところ、この考え方で困ったことはありません。

もちろん、入れ子にも対応しています。
PHPの配列と同じ考え方で大丈夫です。

この考えをするようになってから、Pythonのデータ操作部分での悩みが一気に減りました。
ただ、PythonにはDataFrame(データフレーム)というデータ型が存在します。

このデータ型の概念は、PHPでは存在しないのではないでしょうか?
多次元配列に近いと言えば近いのですけど、何か違う気もします。

DataFrame(データフレーム)は、Pythonでは避けて通れません。
でも、この記事により、Pythonにおけるリスト型と辞書型は理解できたはずです。
だから、残す(大物)はDataFrame(データフレーム)のみと言えるでしょう。

タイトルとURLをコピーしました