【问题标题】:Python giving me trouble converting list to chart outputPython让我无法将列表转换为图表输出
【发布时间】:2015-03-19 10:53:37
【问题描述】:

我在下面设计了这段代码,它基本上将用户的行数、列数、最大值和最小值作为输入。

import random
import math


nrows=int(input("enter the number of rows: "))
ncols=int(input("enter the number of columns: "))
lowval=float(input("enter the lowest value: "))
highval=float(input("enter the highest value: "))

def list(nrows, ncols, lowval, highval):
    values=[[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]]

    for r in range(nrows):
        for c in range(ncols):
            values[r][c] = random.uniform(lowval,highval+1)

    print(values)


list(nrows, ncols, lowval, highval)

现在我正在努力解决的领域是尝试获取列表并将其转换为类似于图表的更有条理的东西,以便输出基本上反映了这一点,例如:

Number of rows: 4
Number of columns: 3
Low value: -100
High value: 100

             0         1         2
   0     7.715     6.522    23.359
   1    79.955    -4.858   -71.112
   2    49.249   -17.001    22.338
   3    98.593   -28.473   -92.926

关于如何让我的输出看起来像上面想要的那样有任何建议/想法吗?

编辑:我知道有一种方法可以通过使用 pandas 来做到这一点,但我更感兴趣的是想办法手动完成。

我在下面的这段代码有点接近我想要的输出:

for i in range(ncols):
    for a in range(nrows):
        print('%-12i%-12i' % (random.uniform(lowval,highval+1), random.uniform(lowval,highval+1)))  

这基本上给了我一个输出:

   enter the number of rows: 2
enter the number of columns: 3
enter the lowest value: 10
enter the highest value: 100
94          36          
95          33          
20          79          
17          19          
57          63          
60          30          

我现在需要做的基本上是让我的行和列与用户输入的匹配,如果有办法请告诉我!

【问题讨论】:

    标签: python list charts output


    【解决方案1】:

    您将使用pandas。它创建的结构化数据与此完全相同。

    >>> import pandas as pd
    >>> import numpy as np
    >>> low = -100.
    >>> high = 100.
    >>> nrows = 4
    >>> ncols = 3
    >>> df = pd.DataFrame(np.random.uniform(lowval, highval+1, (nrows, ncols)))
    >>> print(df)
           0          1          2
    0   7.247811  17.570162  32.860419
    1   5.925314  14.012429  13.899928
    2  22.602344  31.671225  18.199785
    3  35.192664  11.216082  33.590036
    

    另外,永远不要调用函数“list”,因为它会覆盖默认的列表构造函数。

    【讨论】:

    • 我会检查一下——我想看看是否有办法通过操纵代码使输出看起来像一个基本图表(可能通过循环等)
    • 理论上你可以,但如果有什么可以为你做的,那似乎更有效率。
    • 啊,我试图用我的编辑手动完成,如果你们能看到我到目前为止的错误在哪里,请告诉我
    • 非常接近,现在只需要以某种方式拥有正确的用户输入行数和列数,我就是金子
    猜你喜欢
    • 2021-04-17
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多