管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

ファイルの内容を基にリストを作成する(python)

ファイルの内容(要素 × 個数)を基にリストを作りたかったのでpythonを使って書いたメモ。

確認環境

[hoge@localhost misc]$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)

入力ファイルの内容

<要素> <要素の個数>を1行に記載する。
10 3
20 2
30 1

↑を↓のようなリストにしたい
10,10,10,20,20,30
...

コード

#!/usr/bin/python
# -*- coding:utf-8 -*-

import sys


def file_to_list(path):
    all_list = []

    with open(path) as f:
        lines = f.readlines()

        for line in lines:
            # 各行の<要素>  <個数>をリストに分割
            splited_line = line.split()

            # <要素>を<個数>だけ繰り返したリストを作成し、結合する
            tmp_list = [splited_line[0] for i in range(int(splited_line[1]))]
            all_list.extend(tmp_list)

    return all_list


if __name__ == '__main__':
    args = sys.argv

    print file_to_list(args[1])

実行例

[hoge@localhost misc]$ python file_to_list.py lines.dat
['10', '10', '10', '20', '20', '30']

参考にしました