Table of Contents
仕事をしているといろんなものを分類していくことがあります。 そんなとき、分類表を作ることがあるのですが、いちいちテキスト入力で作っていくのはだいぶ骨の折れる作業です。 ここではそんな分類表と分類項目一覧を Python で出力するコードを紹介します。 (ちょうど Python で作業していたので Python で書きました。)
前提
たとえば、なにかを次のカテゴリで分けたいとします。
この分類表は次のようになります。
エリア | 性別 | 身長 | |
---|---|---|---|
1 | 日本 | 男 | 100cm以上 |
2 | 日本 | 男 | 100cm未満 |
3 | 日本 | 女 | 100cm以上 |
4 | 日本 | 女 | 100cm未満 |
5 | アメリカ | 男 | 100cm以上 |
6 | アメリカ | 男 | 100cm未満 |
7 | アメリカ | 女 | 100cm以上 |
8 | アメリカ | 女 | 100cm未満 |
9 | イギリス | 男 | 100cm以上 |
10 | イギリス | 男 | 100cm未満 |
11 | イギリス | 女 | 100cm以上 |
12 | イギリス | 女 | 100cm未満 |
分類一覧は次のようになります。
項目 | 値 |
---|---|
エリア | 日本 |
アメリカ | |
イギリス | |
性別 | 男 |
女 | |
身長 | 100cm以上 |
100cm未満 |
まだ分類項目が少ないからテキストを入力してもなんとかなりますが、増えてくると幾何級数的にやることが増えます。 これを Python でやってみます。 CSVとして出力し、それをコピー&ペーストでスプレッドシートに貼り付けます。
まず今回の分類を Python で表現します。
これを使って分類一覧と掛け合わせ表を作ります。
分類一覧を作りたい場合
Python で次のように書くと、 CSV形式で出力されます。
Output
これをスプレッドシートに貼り付けると、うまい具合に表ができます。
分類表 (直積、掛け合わせ表) を表示する
Python で次のように書くと、 CSV形式で出力されます。
itertools.product
を使って直積を簡潔に作成しています。 i
は出力する番号として1ずつ加算しています。
Output
これをスプレッドシートに貼り付けると、うまい具合に表ができます。
まとめたコード
上記のコードをまとめて対話型で実行できるようにすると次のようになります。
これを実行すると対話型で表を出力することができます。 区切り文字等を設定することができ、 prefix, suffix を設定することで Markdown の表を作ることもできます。