在Python函数中使用关键字参数时,怎样按输入的顺序输出

 我来答
好程序员
2018-07-30 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
**kwargs 是一个 Dictionary. Dictionary 是无序的。

要想输出有序,可以想一个排序的key函数,使你对 kwargs 的排序与输入时的顺序一致。

一种方法是直接把变量名按字母表顺序写进去,不过这样输入的顺序就固定了,我觉得不是你想要的。
还有一种方法如下,需要你在写参数时另外加一个由其他参数名称组成的 tuple。这个 Tuple 中元素的顺序就是你输入参数的顺序。

def test(**kwargs):
order = kwargs.get('order_list','')
if order:
sorted_keys = sorted([x for x in kwargs if x != 'order_list'],key=order.index)
for key in sorted_keys:
print '{0} = {1}'.format(key,kwargs[key])
else:
for key in kwargs:
print '{0} = {1}'.format(key,kwargs[key])

test(a=3,b=3,g=0,v=99,order_list=('a','b','g','v'))
mieyoubeizhuce
2015-10-29 · TA获得超过610个赞
知道小有建树答主
回答量:733
采纳率:100%
帮助的人:475万
展开全部
negative
negative
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-10-29
展开全部
举个例子?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式