相关疑难解决方法(0)

如何用Python漂亮地打印ASCII表?

我正在寻找一个用于打印这样的表的Python库:

=======================
| column 1 | column 2 |
=======================
| value1   | value2   |
| value3   | value4   |
=======================
Run Code Online (Sandbox Code Playgroud)

我找到了asciitable,但它不做边框等.我不需要任何复杂的数据项格式,它们只是字符串.我确实需要它来自动调整列数.

这样的事情存在,还是我需要花几分钟时间写自己的?

python ascii tabular

60
推荐指数
8
解决办法
7万
查看次数

Python格式表格输出

使用python2.7,我正在尝试打印到屏幕表格数据.

这大致是我的代码:

for i in mylist:
   print "{}\t|{}\t|".format (i, f(i))
Run Code Online (Sandbox Code Playgroud)

问题是,根据长度if(i)数据不会对齐.

这就是我得到的:

|foo |bar |
|foobo   |foobar  |
Run Code Online (Sandbox Code Playgroud)

我想得到什么:

|foo     |bar     |
|foobo   |foobar  |
Run Code Online (Sandbox Code Playgroud)

有没有允许这样做的模块?

python

24
推荐指数
6
解决办法
6万
查看次数

排列数字列(表格格式的打印输出)

我有以下格式保存的数据(数字)(示例):

234 127 34 23 45567  
23 12 4 4 45  
23456 2 1 444 567  
...
Run Code Online (Sandbox Code Playgroud)

是否有任何python方法来排列数字并将它们作为

  234  127  34   23  45567  
   23   12   4    4     45  
23456    2   1  444    567 
Run Code Online (Sandbox Code Playgroud)

(我无法预测列大小).

python

11
推荐指数
2
解决办法
4万
查看次数

将列表格式化为表输出的列(python 3)

我有一个循环收集的数据,并存储在只包含相同数据类型的单独列表中(例如,只包含字符串,只有浮点数),如下所示:

names = ['bar', 'chocolate', 'chips']
weights = [0.05, 0.1, 0.25]
costs = [2.0, 5.0, 3.0]
unit_costs = [40.0, 50.0, 12.0]
Run Code Online (Sandbox Code Playgroud)

我已将这些列表视为表的"列",并希望将它们打印为格式化的表,应该如下所示:

Names     | Weights | Costs | Unit_Costs  
----------|---------|-------|------------
bar       | 0.05    | 2.0   | 40.0
chocolate | 0.1     | 5.0   | 50.0
chips     | 0.25    | 3.0   | 12.0
Run Code Online (Sandbox Code Playgroud)

我只知道如何在表行中横向打印列表中的数据,我已经在线查看(以及在此站点上)以获得有关此问题的一些帮助,但是我只是设法找到帮助使它在python 2.7而不是3.5中工作.1这就是我正在使用的.
我的问题是:
如何从上面的4个列表中获取条目以打印到如上所示的表格中.

来自上面列表的每个项目索引是相关联的(即,来自4个列表的条目[0]与相同的项目相关联;条形,0.05,2.0,40.0).

python formatting list columnsorting

11
推荐指数
2
解决办法
3万
查看次数

在Python中打印表格数据

在Python中打印表格数据的最佳方法是什么?假设数据在2D列表中,我想创建一个智能外观的表.我实际拥有的是一个字典列表,我想根据字典中的值打印一个交集.就像是

for val1 in my_dict:
   for val2 in my_dict:
    if val1['a'] > val2['a']:
      print 'x'
Run Code Online (Sandbox Code Playgroud)

但是这样每个列的宽度都是固定的.Writer和格式化程序类似乎是可能性的东西,但与Perl的格式化程序相比,它仍然看起来很复杂.

是否有任何现有的实现或我必须自己编写?

python tabular

10
推荐指数
3
解决办法
2万
查看次数

在python中以表格格式打印列表

我试图打印几个列表(等长)作为表的列.

我正在从.txt文件中读取数据,在代码的最后,我有5个列表,我想打印为列分隔但空格.

python tabular

8
推荐指数
2
解决办法
4万
查看次数

在 Python 3 中制作表格(初学者)

所以我刚开始在学校学习 Python 3,我们必须制作一个函数,将a作为参数,选择一个合理的 x 值,并返回a平方根的估计值。

我们还必须创建一个函数来测试它。我们必须编写一个名为 test_square_root 的函数来打印一个表,其中第一列是一个数字a;第二列是用第一个函数计算的a 的平方根;第三列是 math.sqrt 计算的平方根;第四列是两个估计值之间差异的绝对值。

我写了第一个求平方根的函数,但我不知道如何制作这样的表格。我在这里阅读了有关 Python3 中表格的其他问题,但我仍然不知道如何将它们应用到我的函数中。

def mysqrt(a):
    for x in range(1,int(1./2*a)):
        while True:
            y = (x + a/x) / 2
            if y == x:
                break
            x = y
    print(x)
print(mysqrt(16))
Run Code Online (Sandbox Code Playgroud)

python python-3.x

7
推荐指数
1
解决办法
4万
查看次数

在Python中将数据输出顺序打印为格式化表格

我正在研究 Python 包,它们提供了一种简单的方法来将格式化的“漂亮”表格作为文本输出。这个答案提供了一些建议。问题是,我想像记录器一样按顺序打印我的表(一次一行)。

为了说明这一点, tabulate的输出非常适合我的应用程序:

from tabulate import tabulate   
some_data = [['08:01', 1.00, 32], ['08:02', 1.01, 33], ['08:03', 1.02, 33]]
headers = ['Time', 'x', 'n']
print(tabulate(some_data, headers=headers, tablefmt='plain'))
Run Code Online (Sandbox Code Playgroud)

输出:

Time       x    n
08:01   1      32
08:02   1.01   33
08:03   1.02   33
Run Code Online (Sandbox Code Playgroud)

但我想一次执行一个操作,而不是一次性执行所有操作: 1. 打印标题 2. 打印第一行数据 3. 打印下一行 4. ...等等。

当然,我尝试过这个:

print(tabulate(some_data[0:1], tablefmt='plain'))
Run Code Online (Sandbox Code Playgroud)

输出:

08:01  1  32
Run Code Online (Sandbox Code Playgroud)

这显然不会完美地工作,因为每行的格式每次都会不同。所以我需要一个包,您可以先在其中设置表格(指定所需的格式、列宽等)。然后一次一行输出数据。

有谁知道这是否可以在这些包之一或我可以导入的另一个包中实现?

python format console dataframe output

5
推荐指数
1
解决办法
7529
查看次数

将列表的字典打印为网格布局

好吧,我之前阅读了所有这些,我认为大熊猫可能是一个解决方案,但我的问题略有不同:
垂直
打印列表列表打印列表作为表格数据
打印字典值在python列表中
打印到字典表

我有一份清单:

dict={"A":[i1, i2,i3], "B":[i1, i4,i5], "C":[i1, i2,i5]}
Run Code Online (Sandbox Code Playgroud)

我想要的输出是:

    i1    i2    i3    i4    i5   
A    x     x     x     -     -   
B    x     -     -     x     x   
C    x     x     -     -     x  
Run Code Online (Sandbox Code Playgroud)

(甚至更好,

    i1    i2    i3    i4    i5  
A    A     A     A     -     -  
B    B     -     -     B     B  
C    C     C     -     -     C  
Run Code Online (Sandbox Code Playgroud)

或者在另一个字典中匹配A,B,C或(A,in)的值,但如果我只能拥有第一个表,我会非常高兴)

没有列表包含重复,但这些列表中的每个元素都是从同一个列表中提取的(实际上我的问题是使用相应的蛋白质制作带注释的术语网格,键是带注释的术语,在我的上下文中是与这些蛋白质相关的函数研究).

我确实可以想到一种复杂的方法(构建0和1的向量,用于将每个列表与一般列表进行比较,将这些向量与键相关联,将其放入一个pandas DataFrame中,该格式将由我重新建立每个列表中的大量实体,然后打印出来),但这看起来很乏味/单调.

我认为必须有一个已知的方法来做一些模块(熊猫,漂亮,其他?); 我只是不知道.所以我很高兴有任何见解.谢谢

python dictionary pretty-print grid-layout pandas

4
推荐指数
1
解决办法
732
查看次数

Python 格式字符串中的宽度变量

为了打印表格数据的标题,我想仅使用一种格式字符串line和一种列宽规格w1, w2, w3(或者即使w = x, y, z可能的话)。

我已经看过这个,但是tabulate等等,不要让我像那样证明专栏中的内容是合理format的。

这种方法有效:

head = 'eggs', 'bacon', 'spam'  
w1, w2, w3 = 8, 7, 10  # column widths  
line = '  {:{ul}>{w1}}  {:{ul}>{w2}}  {:{ul}>{w3}}'  
under = 3 * '='  
print line.format(*head, ul='', w1=w1, w2=w2, w3=w3)  
print line.format(*under, ul='=', w1=w1, w2=w2, w3=w3)  
Run Code Online (Sandbox Code Playgroud)

我必须在格式字符串中使用单独的名称作为 width {w1}, , ... 吗?{w2}尝试给出{w[1]}, {w[2]},KeyErrorkeyword can't be an expression。 …

python string format

3
推荐指数
1
解决办法
2851
查看次数

将列表列表转换为表格

我有这个列表清单:

tableData = [['apples', 'oranges', 'cherries', 'banana'],
             ['Alice', 'Bob', 'Carol', 'David'],
             ['dogs', 'cats', 'moose', 'goose']]
Run Code Online (Sandbox Code Playgroud)

我必须转换成这个表:

apples      Alice    dogs
oranges       Bob    cats 
cherries    Carol    moose 
banana      David    goose
Run Code Online (Sandbox Code Playgroud)

对我来说,诀窍是将"线"转换成列(即苹果,橙子,樱桃,同一列下的香蕉)

我尝试过不同的选择(A):

for row in tableData:
        output = [row[0].ljust(20)]
            for col in row[1:]:
             output.append(col.rjust(10))
            print(' '.join(output))
Run Code Online (Sandbox Code Playgroud)

选项(B):

方法2

for i in tableData:
    print( i[0].ljust(10)+(str(i[1].ljust(15)))+(str(i[2].ljust(15)))+
    (str(i[3].ljust(15))))    
Run Code Online (Sandbox Code Playgroud)

似乎没有人能解决这个问题.
在此先感谢您的任何建议.

python

3
推荐指数
2
解决办法
2037
查看次数

Numpy 2D数组到表

我有一个18x18 2d numpy数组(这是一个混乱矩阵)......我需要/想在ipython笔记本中将它显示为一个表.

当我简单地将其打印出来时,它会显示重叠 - 行很长,它们会占用两行.

是否有一个库允许我以某种电子表格格式打印这个数组?

python numpy matplotlib

1
推荐指数
1
解决办法
7222
查看次数