![](/img/trans.png)
[英]When I use basemap in python, longitude is sometimes reversed, flipping the map
[英]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.