Discuss / Python / 为啥字典输出以后是反过来?

为啥字典输出以后是反过来?

Topic source
def f1(a,b,c=0,*args,**kw):
    print(a,b,c,args,kw)

args=(1,2,3)
kw={'x':'#','y':'*'}

>>> f1(*args,*kw)
1 2 3 ('y', 'x') {}
>>> f1(*args,**kw)
1 2 3 () {'y': '*', 'x': '#'}

为啥定义dict是x在前,y在后。但是传到函数里面再print,就是y在前,x在后了? 求指教!

因为dict是无序的。你多运行几次看看 。

def f1(a,b,c=0,args,*kw): print(a,b,c,args,kw)

args=(1,2,3) kw={'x':'#','y':'*'}

f1(args,kw) 1 2 3 ('y', 'x') {} f1(args,**kw) 1 2 3 () {'y': '', 'x': '#'}

请问下 ,为啥, f1(args,**kw) 1 2 3 () {'y': '', 'x': '#'} 这段的 {'y': '', 'x': '#'}这部分不递补到args的()这里呢


  • 1

Reply