比如原生的dict属性
test=dict()
test['a']=1 # 这个可以实现
test['x']['y']=2 # 这个就会报错
我想生成一个递归字典,如果没有这个键则创建,哪种方法能简洁点,优雅点~~多谢了
比如原生的dict属性
test=dict()
test['a']=1 # 这个可以实现
test['x']['y']=2 # 这个就会报错
我想生成一个递归字典,如果没有这个键则创建,哪种方法能简洁点,优雅点~~多谢了
2 回答5.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
2 回答972 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
这样会有一些问题.
test["x"]["y"]
相当于一个链式调用,先获取test["x"]
,再对["y"]这个key进行赋值,进行第一步的时候你无法获取后边是不是要进行赋值,你只能在每次getitem的时候都创建不存在的键.创建这个键究竟是什么类型的呢?默认是dict当然很好理解,但是如果他y的位置是一个整数,那要不要创建一个列表呢?
这些你都要考虑清楚.
最后是一个简单的实现.完全不考虑list的情况.
我觉得这种简单的设计虽然用起来看似简单,但是局限性也是存在的,一定要小心使用这种trick.