【Python】リスト(配列)を二次元配列に格納する

あまりないパターンかもしれませんが(わたしだけかもしれませんが)、単純なリストを二次元配列に格納したい場合です。

以下、以前記事にした二次元配列の使い方です。

 

【Python】二次元配列、多重配列の使い方

 

 

やりたいこと

こんなイメージです。

いろんな果物が入っているリストを二次元配列の中に綺麗に格納します。

【Python】リスト(配列)を二次元配列に格納する

 

 

リスト(配列)を二次元配列に格納するプログラム

二次元配列という枠の中にリストの内容を格納していきます。

ファイルの内容

ファイル「test.txt」の内容です。

以下の記事でも利用しました。

【Python】二次元配列、多重配列の使い方

 

果物の名前が9つ記載されています。

(pyenv) [test@SAKURA_VPS scraping]$ cat test.txt
りんご
みかん
ぶどう
なし
いちじく
いちご
すいか
もも
メロン
(pyenv) [test@SAKURA_VPS scraping]$

 

プログラム例

以下、プログラム例です。

(pyenv) [test@SAKURA_VPS scraping]$ cat test.py
# -*- coding: utf-8 -*-

# ファイルをオープンして果物を配列(リスト)に代入する
f = open('test.txt', 'r')

# 改行コードで分割することを明示
fruits_list = f.read().split('\n')
print(fruits_list)

print('リストの要素数')
print(len(fruits_list))

# 配列 fruits_list を3×3の二次元配列に格納する
# 二次元配列の初期化
fruits_list_2dimensions = [[0 for column in range(3)] for row in range(3)]

z = 0
for x in range(3): # 横のライン
    print(x)
    for y in range(3):  # 縦のライン
        print(y)
        fruits_list_2dimensions[x][y] = fruits_list[z]
        z = z + 1

# 二次元配列の中身を出力
print(fruits_list_2dimensions)

# ファイルを閉じる
f.close()
(pyenv) [test@SAKURA_VPS scraping]$

 

 

実行結果

以下、実行結果です。

(pyenv) [test@SAKURA_VPS scraping]$ python test.py
['りんご', 'みかん', 'ぶどう', 'なし', 'いちじく', 'いちご', 'すいか', 'もも', 'メロン', '']
リストの要素数
10 ← リストの要素数が10個になっていることに注意。
0
0
1
2
1
0
1
2
2
0
1
2
[['りんご', 'みかん', 'ぶどう'], ['なし', 'いちじく', 'いちご'], ['すいか', 'もも', 'メロン']] ← 綺麗に二次元配列の中に格納されました。
(pyenv) [test@SAKURA_VPS scraping]$

 

リストの要素数が「10」個になっている原因については以下の記事を参考にしてください。

 

【Python】リスト(list)の操作

 

 

まとめ

このような冗長なコードを書かなくてももっと短くできると思いますが、どうしても時間が経つとどんな処理をしているのか忘れたり、分からなくなってしまうということで、後ほど振り返った時に理解しやすいようにわざと単純なアルゴリズムにしています。

(処理のスピードやリソースの消費量に関しては重要視していません)

 

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人