2

私はpythonが初めてで、私の問題は非常にばかげているようで、グーグルで答えを見つけることさえできません...

さまざまな惑星とその衛星に関するデータを使用し、惑星の質量を取得するためにいくつかの計算を行い、計算されたデータを表に表示するプログラムを作成しています。

テーブルは私の問題です。リストを使用していますが、作成した表を印刷すると見栄えが悪くなります。

これまでの私のコードは次のとおりです。

table = [["Typ av data", "Jupiter", "Saturnus", "Solen"],
     ["Planetmassa", jupiter_massa, saturnus_massa, solen_massa],
     ["Standardavvikelse", jupiter_standardavvikelse, saturnus_standardavvikelse, solen_standardavvikelse]]
for row in table:
   print(row)

(これはスウェーデン語ですが、それは問題ではありません。"" が付いている単語は単なる単語/文字列であり、残りはデータを含むリストです。)

印刷するとこんな感じ。

['Typ av data', 'Jupiter', 'Saturnus', 'Solen']
['Planetmassa', 4.110628390867864e+39, 1.2347845577268216e+39, 4.319543783963521e+42]
['Standardavvikelse', 2.3357256803779513e+37, 8.050789009367835e+36, 1.9328559536580606e+40]

可能であれば、括弧と '' を取り除きたいのですが、最も重要なのは、列幅が固定された適切なテーブルとして表示することです。私が言ったように、私はグーグルで検索しましたが、単一の答えを見つけることができません (多分私はただ愚かです)。prettytable や texttable などのモジュールもインストールしようとしましたが、自分のコンピューターでは動作しないように思われるため、既に存在するものを使用する必要があります。

では、列幅を固定するにはどうすればよいですか?

これが理にかなっていて、誰かが私を助けてくれることを願っています。さらに情報が必要な場合は、お知らせください。

4

2 に答える 2

2

まず、リストを印刷すると、そのリストの表現が表示されます。

>>> l = ['1', '2', '3']
>>> print l
['1', '2', '3']

アイテムを個別に印刷するには、複数の操作を実行できます。

それらをそれぞれ独自の行に印刷できます。

>>> for i in l:
    print i

1
2
3

または、文字列形式でフォーマットすることもできます。

>>> print "%s" % ', '.join(l)
1, 2, 3

それ以外の場合は、テーブルを自動的に作成する場合は、CSVprettytableなどのモジュールを使用できます。

Web サイトからの prettytable の例:

PrettyTable は、次のように視覚的に魅力的な ASCII テーブルで表形式のデータをすばやく簡単に表現できるように設計されたシンプルな Python ライブラリです。

+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
| Adelaide  | 1295 |  1158259   |      600.5      |
| Brisbane  | 5905 |  1857594   |      1146.4     |
| Darwin    | 112  |   120900   |      1714.7     |
| Hobart    | 1357 |   205556   |      619.5      |
| Melbourne | 1566 |  3806092   |      646.9      |
| Perth     | 5386 |  1554769   |      869.4      |
| Sydney    | 2058 |  4336374   |      1214.8     |
+-----------+------+------------+-----------------+

PrettyTable を使用すると、列のパディングの幅、列内のテキストの配置、テーブルの境界線の描画に使用される文字、境界線が必要かどうかなど、テーブルの多くの側面を制御できます。列と行のどのサブセットを印刷するかを制御したり、特定の列の値で行をソートしたりできます。

于 2013-04-07T14:38:28.047 に答える