0

私は数十万の数の膨大なリストを持っています。sagemathによって作成された場合、リストのフォーマットは正しくありませんが、別の関数に「フィード」するには、以下に示すようなフォーマットにする必要があります。よくフォーマットされたリストのサンプルを次に示します。

           C=[
           (  7.850629, 25.421135, 22.162571),
           ( 37.706629, 28.421472,  0.229876),
           ( 37.560629, 21.421809, 18.320977),
           ( 39.238629, 26.422147, 18.442572),
           ( 35.087169,  0.419785, 15.055789),
           ]

ご覧のとおり、すべての要素は、精度と小数点以下の桁数に基づいて、右側に配置されています。だから私の質問はこれです:どうすれば不適切にフォーマットされたリスト(以下に示す例)を上記の適切にフォーマットされたリストに変換できますか

    B=[(37.074945, 22.414327,
9.756234), (37.074945, 22.414665,
1.669214), (37.074945, 22.415002,
8.571376), (37.074945, 22.41534,
1.294731), (37.074945, 22.415677,
5.753062), (37.074945, 22.416014,
7.519850)]

(もう少し詳しく説明できれば、私のリストをマトリックスと考えると、数万行と3列になります)

4

2 に答える 2

0

Sage には、優れた整列機能が組み込まれていません。リストをマトリックスと考えたい場合は、次のことができます

sage: matrix(B)
[37.0749450000000 22.4143270000000 9.75623400000000]
[37.0749450000000 22.4146650000000 1.66921400000000]
[37.0749450000000 22.4150020000000 8.57137600000000]
[37.0749450000000 22.4153400000000 1.29473100000000]
[37.0749450000000 22.4156770000000 5.75306200000000]
[37.0749450000000 22.4160140000000 7.51985000000000]

コンマやその他の構文要素が欠落していますが、適切に配置されています。html 出力を使用する場合は、html.table(B). 将来的には (この将来の拡張の可能性を参照してください)、一般的にこのような素敵なディスプレイのための優れた「テーブル」機能があるはずです。

于 2012-07-10T12:56:19.690 に答える
0

まあ、それは一般的な Python の質問だと思います。Cあなたのコメントを考えると、次の作業。"%9.5f"重要な洞察は次のとおりです。

for l in C:
    print "(%s)," % ', '.join("%9.5f"%i for i in l)
   ....:     
( 37.07494,  22.41433,   9.75623),
( 37.07494,  22.41466,   1.66921),
( 37.07494,  22.41500,   8.57138),
( 37.07494,  22.41534,  18.29473),
( 37.07494,  22.41568,   5.75306),
( 37.07494,  22.41601,  17.51985),
于 2013-12-17T13:55:01.240 に答える