证明 PYTHON 中字典中的键和值

Justify keys and values from a dict in PYTHON

我正在开发一个程序,该程序将证明 dict 中的一些键和值是正确的 make_table

我的代码主体应该是这样的:

def make_table(**kwargs):
    for key, value in kwargs.items():
        pass

make_table(
    key_position="right",
    value_position="center",
    song="Style",
    artist_name="Taylor $wift",
    album="1989"
)

这就是我需要打印的结果:

===================================
|             song |    Style     |
|      artist_name | Taylor $wift |
|            album |    1989      |
===================================

我现在需要知道的是如何证明 kwargs.items() 的内容如结果中所要求的那样合理并打印它们但不打印行:key_position="right"和 value_position="center" 因为它们的功能只是证明。

谢谢。

使用格式字符串的示例:

def make_table(**kwargs):
    s = "="*29
    for key, value in kwargs.items():
        s += f"\n|{key:>15} |{value:^10}{'|':<2}"
    
    s += "="*29
    return s

kv = {YOUR DICT}
print(make_table(**kv))

此函数会像您所要求的那样打印 table,但它会更改函数签名以使事情变得更简单。此外,它通过查看键和值各自的最长长度来适应它们的长度。

def make_table(d, key_align, val_align):
    max_key_len = max(map(len, d.keys()))
    max_val_len = max(map(len, d.values()))
    
    n_equals = (2 + max_key_len + 3 + max_val_len + 2)
    s = n_equals * '=' + '\n'
    for key in d:
        s += "| "
        
        if key_align == 'left':
            s += "{key:<{length}}".format(key=key, length=max_key_len)
        elif key_align == 'right':
            s += "{key:>{length}}".format(key=key, length=max_key_len)
        elif key_align == 'center':
            s += "{key:^{length}}".format(key=key, length=max_key_len)
            
        s += " | "    
        
        if val_align == 'left':
            s += "{val:<{length}}".format(val=d[key], length=max_val_len)
        elif val_align == 'right':
            s += "{val:>{length}}".format(val=d[key], length=max_val_len)
        elif val_align == 'center':
            s += "{val:^{length}}".format(val=d[key], length=max_val_len)
            
        s += " |\n"
        
    s += n_equals * '='
            
            
    return s


song_dict = {
    "Song": "Style",
    "Artist Name": "Taylor $wift",
    "Album": "1989"
}

table = make_table(song_dict, key_align='right', val_align='center')
print(table)

Python 脚本的输出:

==============================
|        Song |    Style     |
| Artist Name | Taylor $wift |
|       Album |     1989     |
==============================