0

我目前在列中打印多个数组的黑客方式使用关键字参数来标记输出:

def table(**data_dict):
    n=([len(x) for x in data_dict.values()]) # # data for each var
    N=max(n)
    # prep data & print headings
    prntstr=''
    for i,var in enumerate(data_dict):
        # convert lists to str for printing, padding as needed
        data_dict[var] = ['{:.5g}'.format(x) for x in data_dict[var]] + ['']*(N-n[i]) 
        prntstr=prntstr+f'| {var:^8} |'
    print(prntstr,'-'*12*len(data_dict),sep='\n'); # print heading 
    # print data
    for i in range(0,N):
        prntstr=' '.join(f'{data_dict[var][i]:>11}' for var in data_dict)
        print(prntstr)

并使用

rho=[1.5,0.11]
Fx=[-14.2]
table(rho=rho,T=[665,240],Fx=Fx)

生产

|   rho    ||    T     ||    Fx    |
------------------------------------
        1.5         665       -14.2
       0.11         240

是否有另一种方法可以使用绑定的参数名称(例如 rho)并避免非关键字参数的重复(例如 rho=rho),以便可以简单地键入table(rho,T=[665,240],Fx)?先感谢您。

4

1 回答 1

-1

使用 RHO=rho,其中 RHO 是输出中的标题。

代替

table(rho=rho,T=[665,240],Fx=Fx)

table(RHO=rho,T=[665,240],Fx=Fx)

如果这是不可接受的,您将不得不接受第一个论点

代替

def table(**data_dict)

def table(RHO, **data_dict):
    data_dict['rho'] = RHO

并调用如下:

代替

table(rho=rho,T=[665,240],Fx=Fx)

table(rho,T=[665,240],Fx=Fx)
于 2020-12-21T23:10:49.707 回答