繁体   English   中英

Python词典:为什么以及何时必须在键和值之间使用有时“:”和有时“ =”?

[英]Python dictionaries: why and when I have to use sometimes “:” and sometimes “=” between the key and the value?

我正在研究在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")

请问有逻辑解释吗?

前者是字典,后者是函数的关键字参数。 我看不出他们的比较。

这就像在问为什么必须将/用于浮点除法,而将//用于整数除法。 您要让Python做两件事,所以您需要两种不同的语法。

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


还请注意:在函数签名中已经具有含义-这是一个函数注释。

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

您可以将字典语法的参数设为{key=value, key2=value2} ,但是=运算符表示赋值,并且您并未真正将值赋给键,只其与此映射中的键相关联 我认为不合适。

在第一个示例中:

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

您有一个dict文字。 这与在源代码中放入1'one'相同。

在第二个示例中:

user = dict(name="Jack")

您正在为dict构造函数提供关键字参数。 解释器在将关键字参数列表传递到函数/构造函数时将其转换为dict 因此,就像您要将dict传递给dict构造函数并说:“在这里,我用给您的这本字典制作字典。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM