关于python:如何创建一个新的typing.Dict [str,str]并添加项目

How to create a new typing.Dict[str,str] and add items to it

这里已经有一个很好的Q/A用于在Python中创建非类型化字典。我正在努力找出如何创建一个类型化词典,然后在其中添加一些东西。

我想做的一个例子是…

1
2
3
4
5
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

…但这让我犯了一个错误

我试过上述声明的其他一些排列

1
return_value:Dict[str,str] = None

'NoneType' object has no attribute 'update'错误。尝试

1
return_value:Dict[str,str] = dict()

1
return_value:Dict[str,str] = {}

update expected at most 1 arguments, got 2都有错误。我不知道在这里需要什么来创建一个空类型的字典,就像我在c(var d = new Dictionary();中所做的那样)。如果可能的话,我宁愿不避开类型安全。有人能指出我遗漏了什么或做得不正确吗?


Dict这样的东西不打算在运行时使用;它们是表示用于静态类型分析的类型的对象。如果你想听写,你必须用

1
return_value = dict()

不能使用Dict创建具有受限运行时类型的对象。


最后2个是EDOCX1的正确用法(0),但是您在for循环中用不正确的语法更新了字典。

1
2
3
4
5
return_value: Dict[str, str] = dict()
for item in some_other_list:
    if item.property1 > 9:
        return_value[item.name] ="d'oh"
return return_value