Skip to main content
 首页 » 编程设计

Python 字典 : why and when I have to use sometimes ":" and sometimes "=" between the key and the value

2025年05月04日14mfryf

我正在研究 Python 中字典的使用,我对必须用来将键与值分开的符号以及键的“”感到越来越困惑。

通常,我会这样写:

user = {"name": "John", "surname": "Doe", "age": 34, "gender": "Male"} 

但是,为什么我要写:

user = dict(name="Jack") 

...在键(不写“”)和值之间有一个“=”?我还有一个例子:

def favourite_colour (**args): 
 
    for name, colour in args.items(): 
 
        print (f"{person}'s favourite colour is {colour}.") 
favourite_colour(Jude="green", Giulio="orange", Chiara="black") 

请问有逻辑解释吗?

请您参考如下方法:

前者是字典,后者是函数的关键字参数。我看不出它们有何不同。

这就像问为什么 float 除法要用/,整数除法要用//。您要求 Python 做两件不同的事情,因此您需要两种不同的语法。

请注意,您也可以将 foo(bar=baz) 调用为 foo(**{bar: baz}),它提供字典作为一组关键字foo 的参数。


另请注意,: 在函数签名中已经具有意义——它是一个函数注释。

def foo(bar: "this is a bar object"): 
    return raise_the(bar) 

您可以将字典语法作为 {key=value, key2=value2} 的参数,但是 = 运算符意味着赋值,而您并不是真正在赋值键的值,您只是将它关联到此映射中的键。我觉得不合适。