python多级字典嵌套_python – 如何拆分字符串并形成多级嵌套字典?
您可以使用
reduce和
reversed功能,如下所示
>>> reduce(lambda res, cur: {cur: res}, reversed("foo/bar/baz".split("/")), 1)
{'foo': {'bar': {'baz': 1}}}
如果您使用的是Python 3.x,則需要導(dǎo)入reduce from functools
>>> from functools import reduce
>>> reduce(lambda res, cur: {cur: res}, reversed("foo/bar/baz".split("/")), 1)
{'foo': {'bar': {'baz': 1}}}
這里,reduce的最后一個參數(shù)是起始值.它將從迭代傳遞中逐個獲取值,使用結(jié)果和當(dāng)前值調(diào)用函數(shù),然后在下一次開始時,最后一個結(jié)果將是第一個參數(shù),當(dāng)前值將作為第二個參數(shù).當(dāng)iterable耗盡時,它將返回結(jié)果.
因此,執(zhí)行將逐步進(jìn)行,如下所示
假設(shè)func是lambda函數(shù),它會像這樣重復(fù)調(diào)用
func(1, "baz") => {"baz": 1}
func({"baz": 1}, "bar") => {"bar": {"baz": 1}}
func({"bar": {"baz": 1}}, "foo") => {"foo": {"bar": {"baz": 1}}}
總結(jié)
以上是生活随笔為你收集整理的python多级字典嵌套_python – 如何拆分字符串并形成多级嵌套字典?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql聚集索引可以多列吗_MySQL
- 下一篇: python opencv resize