打印时从字典的值中删除括号

时间:2017-07-25 21:42:10

标签: python

我有以下功能,我想根据引入的参数数量生成字典:

def find_posit(*param):
    query = {'colors':param}
    return query

print(find_posit('red','blue','green'))

打印函数时,返回的输出如下:

{'colors':('red','blue','green')}

我如何获得以下输出?

 {'colors': 'red','blue','green'}

2 个答案:

答案 0 :(得分:1)

简短的回答是你无法做到。这就是Python为元组对象定义__repr__()表示的方式。

但是,你可以创建一个自定义函数来" stringify"您想要的表示中的字典:

>>> def print_custom_dict(d):
    pairs = []
    for k, v in d.items():
            pair = '{}: {}'.format(repr(k), ','.join(repr(val) for val in v))
            pairs.append(pair)
    return '{%s}' % ', '.join(pairs)

>>> print_custom_dict({'colors':('red', 'blue', 'green')})
"{'colors': 'red','blue','green'}"

当然,您可以采取其他选项,例如定义自定义tuple - ish对象,并修改其__repr__()以打印所需的输出,但在您的情况下使用简单辅助函数IMO是最简单,最干净的方法。

答案 1 :(得分:0)

我不确定但是根据python文档而不使用任何数据类型你不能为字典添加多个值,所以你不能删除元组。可能我错了。你的代码是。



def find_posit(*param):
    query = {'colors':param}
    return query

print(find_posit('red','blue','green'))