格式化包含值列表的有序字典

时间:2019-05-24 11:55:55

标签: python-3.x dictionary

我有一个包含key:value对的字典,我需要打印这些对,但是格式化value字段。当前输出如下

|key1| ['vl', 'v2', 'v3', 'v4', 'v5']
|key2| ['v1', 'v2']

但是我需要这种特定格式

|key1| 'vl', 'v2', 'v3', 'v4', 'v5'|
|key2| 'v1', 'v2'|

我只是在做一个基本的for循环来打印k:v,但不知道如何格式化。

    for key, value in sorted(dict.items()):
        print(key, value)

2 个答案:

答案 0 :(得分:1)

首先,请勿将python内置关键字用作变量名,因此请勿命名变量dict,而应命名为dct

遍历字典并根据给定的格式打印字符串。
您将需要使用值创建字符串,以使值被单引号引起来,然后可以使用f字符串创建最终字符串

dct = {'key1': ['vl', 'v2', 'v3', 'v4', 'v5'],
'key2': ['v1', 'v2']}

for key, value in sorted(dct.items()):
    #Convert list of values to given value string
    value_str = ', '.join("'{0}'".format(w) for w in value)

    #Use f-string to print
    print(f'|{key}| {value_str}|')

输出将为

|key1| 'vl', 'v2', 'v3', 'v4', 'v5'|
|key2| 'v1', 'v2'|

答案 1 :(得分:1)

您尝试过吗:

for key, value in sorted(dict.items()):
    print(key, str(value).replace("]", "|").replace("[",""))