已经有一个很好的问题和答案,介绍了如何在Python中创建一个无类型字典。我正在尝试弄清楚如何创建一个有类型字典并向其中添加内容。
我想做的一个示例是...
return_value = Dict[str,str]
for item in some_other_list:
if item.property1 > 9:
return_value.update(item.name, "d'oh")
return return_value
...但是这会让我得到一个错误:描述符'update'需要一个'dict'对象,但收到了一个'str'
我已经尝试了上述声明的几种其他排列方式
return_value:Dict[str,str] = None
出现错误:'NoneType' object has no attribute 'update'
,尝试中...
return_value:Dict[str,str] = dict()
或者
return_value:Dict[str,str] = {}
都有错误,一个是update expected at most 1 arguments, got 2
,另一个是我不知道如何像在c#中一样创建空的已定义字典(var d = new Dictionary<string, string>();
)。如果可能的话,我不想牺牲类型安全。有人可以指出我缺失或错误的地方吗?
return_value
不是一个dict
,它是代表dict
类型的对象。从typing
导入的东西仅用于类型提示,而不是实际值。 - chepnermypy
)使用。 - juanpa.arrivillagadict
中分配单个键值对,您可以使用my_dict[key] = value
。.update
接受另一个映射,例如另一个字典,并更新传递给它的映射中的键值对。因此,您可以执行my_dict.update({key:value})
,但对于单个项目而言这是相当浪费的(创建完全不必要的中间字典对象)。或者,您可以通过关键字参数传递给.update
,像这样:my_dict.update(foo='bar', baz='bing')
,有时从可读性的角度来看这很好。 - juanpa.arrivillaga