Pythonで行列(マトリックス)にカスタム境界線を追加する方法
Pythonで行列(マトリックス)にカスタム境界線を追加したい場合、シンプルなリストの反復処理を利用することで、目的の境界線を簡単に追加できます。ここでは、各行の先頭と末尾に記号「|」を付けて、視覚的に見やすい形式で行列を出力する方法を紹介します。
サンプルコード
以下にその実装例を示します。
my_list = [[2, 5, 5], [2, 7, 5], [4, 5, 1], [1, 6, 6]]
print("The list is :")
print(my_list)
print("The resultant matrix is :")
border = "|"
for sub in my_list:
my_temp = border + " "
for ele in sub:
my_temp = my_temp + str(ele) + " "
my_temp = my_temp + border
print(my_temp)出力結果
The list is : [[2, 5, 5], [2, 7, 5], [4, 5, 1], [1, 6, 6]] The resultant matrix is : | 2 5 5 | | 2 7 5 | | 4 5 1 | | 1 6 6 |
処理の解説
- まず、リストの中にリストを格納したネストされたリスト(二次元リスト)を定義し、コンソールに表示します。
- 次に、境界線として使用する文字(ここでは「|」)を変数に定義します。
- 外側のループでリストの各行を反復処理し、行の先頭に境界線とスペースを連結します。
- 内側のループで各要素を反復処理しながら、要素を文字列に変換して順番に連結していきます。
- 最後に行の末尾にもう一度境界線を追加し、完成した行をコンソールに出力します。
join()を使ったより簡潔な書き方
同じ出力は、str.join()メソッドとmap()関数を組み合わせることで、より簡潔に記述することもできます。
for sub in my_list:
print(border + " " + " ".join(map(str, sub)) + " " + border)この方法では、内側のループを明示的に書く必要がなく、コードの可読性が向上します。境界線の記号を変更すれば、* や # など、任意のカスタム境界線に対応できるのも大きなメリットです。
-
Pythonで要素の繰り返し回数を指定してリストを作成する方法
Pythonでリストや行列を作成する際、特定の要素を何回繰り返すかを自由に制御したいケースがあります。例えば、要素のリストと、それぞれの要素の出現回数が別々に与えられている場合です。本記事では、このような条件をもとに目的のリスト(行列)を生成する方法を、具体的なコード例とともに解説します。方法1:zip関数を使うまず、行列に使用する要素を格納したリストを宣言します。次に、各要素が行列内に出現する回数を保持するもう一つのリストを用意します。zip関数を使えば、これら2つのリストを対応付けて処理でき、リスト内包表記(forループ)によって各要素を指定回数だけ繰り返した結果をまとめることができます。
-
Pythonでリストを任意の位置で分割してサブリストを作成する方法
データ分析の現場では、データを整形したり移動させたりといった複雑な処理が求められる場面が多くあります。そのような状況で役立つのが、1つの大きなリストを要件に応じて複数のサブリストに分割するテクニックです。本記事では、Pythonでリストを指定した位置で分割するための代表的なアプローチを、具体的なコード例とともに解説します。方法1:zipとforループ(リスト内包表記)を使うこのアプローチでは、まずスライス(リストダイス)を使って分割開始位置から要素を取り出します。次に、zip関数とforループ(リスト内包表記)を組み合わせることで、分割ポイントごとにサブリストを生成します。[0] + spli