首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对齐列表元素Sagemath

对齐列表元素Sagemath
EN

Stack Overflow用户
提问于 2012-07-10 09:34:35
回答 2查看 683关注 0票数 0

我有一个有数十万个数字的大名单。该列表在由sagemath生成时格式很差,但我必须按照下面所示的格式将其“馈送”到另一个函数。下面是格式良好的列表的示例:

代码语言:javascript
复制
           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),
           ]

正如您所看到的,所有元素都是对齐的,并且是基于精度和小数位的。因此,我的问题是:如何将格式糟糕的列表(如下图所示)转换为之上格式良好的列表

代码语言:javascript
复制
    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)]

(如果我能更多地描述它,我会说,如果我的列表被认为是一个矩阵,那么它将有成千上万行和三列的十分之一)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-10 12:56:19

Sage没有很好的对位功能。如果你愿意把你的列表看作一个矩阵,你可以

代码语言:javascript
复制
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)。在未来(请参阅这是未来可能的改进),应该有一个很好的“表”函数来显示像这样的好显示器。

票数 0
EN

Stack Overflow用户

发布于 2013-12-17 13:55:01

嗯,我认为这是一个一般的Python问题。考虑到您的评论中的C,下面的工作如下。"%9.5f"是关键的洞察力:

代码语言:javascript
复制
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),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11410438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档