我有以下功能,我想根据引入的参数数量生成字典:
def find_posit(*param):
query = {'colors':param}
return query
print(find_posit('red','blue','green'))
打印函数时,返回的输出如下:
{'colors':('red','blue','green')}
我如何获得以下输出?
{'colors': 'red','blue','green'}
答案 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'))