我希望有一个包含一组状态转换的字典.我假设我可以使用states = defaultdict(None)来执行此操作,但它不能按我的预期工作.例如:
states = defaultdict(None)
if new_state_1 != states["State 1"]:
dispatch_transition()
Run Code Online (Sandbox Code Playgroud)
我原以为状态["State 1"]会返回值None,如果new_state是bool,我会为new_state获得False != states ["State 1"],但我得到一个KeyError.
我究竟做错了什么?
谢谢,
巴里
Bjö*_*lex 82
defaultdict需要一个可调用的参数,在没有参数的情况下调用时提供默认值.None不可赎回.你想要的是这个:
defaultdict(lambda: None)
Run Code Online (Sandbox Code Playgroud)
Sve*_*ach 10
在这个用例中,根本不要使用defaultdict- 普通dict会做得很好:
states = {}
if new_state_1 != states.get("State 1"):
dispatch_transition()
Run Code Online (Sandbox Code Playgroud)
该dict.get()方法返回给定键的值,如果未找到键,则返回默认值.默认值默认为None.
| 归档时间: |
|
| 查看次数: |
13752 次 |
| 最近记录: |