質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Spark

Spark(Apache Spark)とは、膨大なデータを迅速、柔軟に分散並行処理を行うフレームワークです。分析ツールであるApache Hadoopと比較し、最大で100倍の速度でデータ処理ができるとされています。

Pepper

Pepperとは、SoftBankモバイル向けにアルデバラン・ロボティクス社が開発した人型ロボットです。周囲を把握するための3Dカメラや、障害物を回避する超音波システム、触覚センサーを搭載しています。ユーザーへの対応を学習し、言語やジェスチャーを変更することもできます。

Q&A

解決済

1回答

1256閲覧

Pretty printerによる文字列の格子状表示

sasakin

総合スコア15

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Spark

Spark(Apache Spark)とは、膨大なデータを迅速、柔軟に分散並行処理を行うフレームワークです。分析ツールであるApache Hadoopと比較し、最大で100倍の速度でデータ処理ができるとされています。

Pepper

Pepperとは、SoftBankモバイル向けにアルデバラン・ロボティクス社が開発した人型ロボットです。周囲を把握するための3Dカメラや、障害物を回避する超音波システム、触覚センサーを搭載しています。ユーザーへの対応を学習し、言語やジェスチャーを変更することもできます。

0グッド

0クリップ

投稿2021/04/07 11:55

編集2021/04/07 11:57

これらの文字列を、項目ごとに綺麗に表示したいです
<現在の文字列>
'arg:a, type:, default:empty, kind:1'
'arg:b, type:int, default:empty, kind:1'
'arg:c, type:, default:empty, kind:1'
'arg:d, type:, default:10, kind:1'

<こんな感じにしたい>(まだ少しずれてますが)
'arg:a, type:, default:empty, kind:1'
'arg:b, type:int, default:empty, kind:1'
'arg:c, type:, default:empty, kind:1'
'arg:d, type:, default:10, kind:1'

調べているとPrettyPrinterというものがあるようだったので使ってみたのですが、うまくいきません。なにかパラメータ等必要だったら教えていただけませんか?

strings = ['arg:a, type:, default:empty, kind:1', 'arg:b, type:int, default:empty, kind:1', 'arg:c, type:, default:empty, kind:1', 'arg:d, type:, default:10, kind:1',] import pprint # pp = pprint.PrettyPrinter(indent=10) pp = pprint.PrettyPrinter(width=41, compact=True) for s in strings: pp.pprint(s) >> 'arg:a, type:, default:empty, kind:1' 'arg:b, type:int, default:empty, kind:1' 'arg:c, type:, default:empty, kind:1' 'arg:d, type:, default:10, kind:1' #(うまく項目ごと格子状に表示されない)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pprintは文字列の中まで解析するわけではないので無理でしょう。

関数を作るなら以下のような感じです。

python

1>>> def print_table(slists): 2... ss = [s.split() for s in slists] 3... lengths = [max([len(ss[i][j]) for i in range(len(ss))]) for j in range(len(ss[0]))] 4... for slist in ss: 5... print(*[('{:<'+ f'{length}' + '}').format(s) for s, length in zip(slist, lengths)]) 6... 7>>> strings = ['arg:a, type:, default:empty, kind:1', 8... 'arg:b, type:int, default:empty, kind:1', 9... 'arg:c, type:, default:empty, kind:1', 10... 'arg:d, type:, default:10, kind:1',] 11>>> 12>>> print_table(strings) 13arg:a, type:, default:empty, kind:1 14arg:b, type:int, default:empty, kind:1 15arg:c, type:, default:empty, kind:1 16arg:d, type:, default:10, kind:1

投稿2021/04/07 13:44

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問