相关疑难解决方法(0)

将列表打印为表格数据

我对Python很陌生,现在我正在努力为打印输出很好地格式化我的数据.

我有一个用于两个标题的列表,以及一个应该是表格内容的矩阵.像这样:

teams_list = ["Man Utd", "Man City", "T Hotspur"]
data = np.array([[1, 2, 1],
                 [0, 1, 0],
                 [2, 4, 2]])
Run Code Online (Sandbox Code Playgroud)

请注意,标题名称的长度不一定相同.但是,数据条目都是整数.

现在,我想以表格格式表示这个,如下所示:

            Man Utd   Man City   T Hotspur
  Man Utd         1          0           0
 Man City         1          1           0
T Hotspur         0          1           2
Run Code Online (Sandbox Code Playgroud)

我有预感,必须有一个数据结构,但我找不到它.我已经尝试使用字典和格式化打印,我已尝试使用缩进的for循环,我已尝试打印为字符串.

我确信必须有一个非常简单的方法来做到这一点,但由于缺乏经验,我可能会错过它.

python

314
推荐指数
15
解决办法
51万
查看次数

NumPy:漂亮的打印表格数据

我想打印NumPy表格数组数据,以便它看起来不错.R和数据库控制台似乎表现出很好的能力.但是,NumPy的表格数组的内置打印看起来像垃圾:

import numpy as np
dat_dtype = {
    'names' : ('column_one', 'col_two', 'column_3'),
    'formats' : ('i', 'd', '|S12')}
dat = np.zeros(4, dat_dtype)
dat['column_one'] = range(4)
dat['col_two'] = 10**(-np.arange(4, dtype='d') - 4)
dat['column_3'] = 'ABCD'
dat['column_3'][2] = 'long string'

print(dat)
# [(0, 0.0001, 'ABCD') (1, 1.0000000000000001e-005, 'ABCD')
#  (2, 9.9999999999999995e-007, 'long string')
#  (3, 9.9999999999999995e-008, 'ABCD')]

print(repr(dat))
# array([(0, 0.0001, 'ABCD'), (1, 1.0000000000000001e-005, 'ABCD'),
#        (2, 9.9999999999999995e-007, 'long string'),
#        (3, 9.9999999999999995e-008, 'ABCD')], 
#       dtype=[('column_one', '<i4'), ('col_two', '<f8'), ('column_3', '|S12')])
Run Code Online (Sandbox Code Playgroud)

我希望看起来更像数据库吐出的东西,例如postgres风格: …

python numpy pretty-print tabular

14
推荐指数
4
解决办法
3万
查看次数

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

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

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中打印表格数据

在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的文本表编写器/打印机

TL; DR - > PyPi上是否有一个表写模块(我找不到),它将列表作为参数并从这些列表中创建一个表.我问这个是因为我看过PyPI,但是我没有发现任何类似于实际打印字符串或将字符串写入文件的内容.

想象一下,有很多统计数据,并且不得不把它们整齐地写在一张桌子里,就像这样,(我一直在努力教一个关于不同排序算法之间差异的课程)(另外,请注意这个例子)这里给出的代码与下面给出的代码的输出不匹配.我简单地完成了这个,以便解释我想要的东西,而不是制作一个必须滚动的大块代码):

#########################
#   LENGTH ||| TIME(s)  #
#########################
#       0  ||| 0.00000  #
#     250  ||| 0.00600  #
#     500  ||| 0.02100  #
#     750  ||| 0.04999  #
#    1000  ||| 0.08699  #
#    1250  ||| 0.13499  #
#    1500  ||| 0.19599  #
#    1750  ||| 0.26900  #
#    2000  ||| 0.35099  #
#########################
Run Code Online (Sandbox Code Playgroud)

理想情况下,我会写这样的东西保存到文件,如下所示.列表集,一个列表包含一组值,另一个列表包含另一组相应的值.

if __name__ == '__main__':
    with open(os.path.join(os.path.dirname(__file__), 'Sort Stats', 'stats_exp.txt'), 'w') as stats:
        stats.write(
            "O-######################==#######################==#######################==######################-O\n")
        stats.writelines(
            "|{0:^23}||{1:^23}||{2:^23}||{3:^23}|\n".format("Bubble Sort", "Insertion Sort", "Merge …
Run Code Online (Sandbox Code Playgroud)

python printing

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

在python中将列表打印到表中

如果我有三个列表,如

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

并希望像这样打印出来

1  4  7
2  5  8
3  6  9
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

python list

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

将列表列表转换为表格

我有这个列表清单:

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
查看次数

标签 统计

python ×7

tabular ×2

list ×1

numpy ×1

pretty-print ×1

printing ×1