证明 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 |
==============================
我正在开发一个程序,该程序将证明 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 |
==============================