5
A
回答
7
对于扭转名单,然后开始创建空的字典元素。
l = [1, 2, 3, 4]
d = {}
for i in reversed(l):
d = {i: d}
>>> print(d)
{1: {2: {3: {4: {}}}}}
4
您也可以使用functools.reduce
这个。
reduce(lambda cur, k: {k: cur}, reversed(l), {})
演示
>>> from functools import reduce
>>> l = [1, 2, 3, 4]
>>> reduce(lambda cur, k: {k: cur}, reversed(l), {})
{1: {2: {3: {4: {}}}}}
建设的流程看起来像
{4: {}} ->{3: {4: {}} ->{2: {3: {4: {}}}} ->{1: {2: {3: {4: {}}}}}
为reduce
穿越反向迭代进行新单元素字典。
1
可以做这样的事情:
l = [1,2,3,4]
d = {}
for i in l[::-1]:
d = {i: d}
print(d)
{1:{2:{3:{4:{}}}}} [成品在0.4秒]
0
这是一个抽象。用途为setdefault
通常由defaultdict
所掩盖,但在这里是一个有趣的应用程序,如果你有一个或多个列表(iterables):
def make_nested_dict(*iterables):
"""Return a nested dictionary."""
d = {}
for it in iterables:
temp = d
for i in it:
temp = temp.setdefault(i, {})
return d
make_nested_dict([1, 2, 3, 4])
# {1: {2: {3: {4: {}}}}}
make_nested_dict([1, 2, 3, 4], [5, 6])
# {1: {2: {3: {4: {}}}}, 5: {6: {}}}
个嵌套分支
不像defaultdict
,这种技术接受通过附加到现有的“分支”来复制密钥。例如,我们将在第一(A)分支的第三级附加新7 → 8
分支:
A B C
make_nested_dict([1, 2, 3, 4], [5, 6], [1, 2, 7, 8])
# {1: {2: {3: {4: {}}, 7: {8: {}}}}, 5: {6: {}}}
视觉:
1 → 2 → 3 → 4 (A) 5 → 6 (B)
\
7 → 8 (C)
相关问题
- 1. Python将元组列表转换为嵌套字典列表
- 2. 将嵌套字典的列表转换为字典的平面列表
- 3. 将嵌套列表转换为字典键和值
- 4. 将嵌套字典转换为python列表?
- 5. Python - 将嵌套列表转换为字典?
- 6. 将表格数据转换为表示树的嵌套字典
- 7. 将嵌套字符串列表转换为嵌套字符串列表
- 8. 将列表转换为字典列表
- 9. 使用Python将深层嵌套字典转换为1D字典
- 10. 解压的嵌套字典的列表,并转换为CSV
- 11. 将数组转换为嵌套列表
- 12. 将嵌套列表转换为矩阵
- 13. 转换列表的列表到嵌套字典
- 14. 转换列表中嵌套的列表和类型的字典
- 15. 将嵌套列表字符串转换为列表
- 16. 将字典列表转换为唯一的字典列表
- 17. 转换列表为字典
- 18. 将python列表转换为字典
- 19. 将列表转换为字典?
- 20. (Python)将字典转换为列表?
- 21. 将多个列表转换为字典
- 22. 将字典列表转换为Pandas Dataframe
- 23. 将JSON转换为字典列表
- 24. 将字典值转换为列表?
- 25. 将列表转换为多值字典
- 26. 将两个列表转换为字典?
- 27. 将单个字符串转换为嵌套列表阵列
- 28. 使用Javascript将嵌套JSON转换为HTML嵌套列表
- 29. netlogo将字符串转换为嵌套列表中的数字
- 30. Python字典 - 列表嵌套
你能告诉我的代码,这样我可以查看它。 。 –
for i in rl: \t d = {i:d}这里rl = l [-1:]其中l是一个列表,d是字典 –
d = {} for i in rl:d = {i:d } –