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. 將嵌套列表轉換爲字典
- 2. Python將元組列表轉換爲嵌套字典列表
- 3. Python:將列表元組的嵌套列表轉換爲字典?
- 4. 將嵌套字典的列表轉換爲字典的平面列表
- 5. 將嵌套字典轉換爲csv?
- 6. 將嵌套字典轉換爲json swift
- 7. 將嵌套列表轉換爲字典鍵和值
- 8. 將嵌套字典轉換爲python列表?
- 9. Python - 將嵌套列表轉換爲字典?
- 10. 將詞典列表轉換爲嵌套詞典
- 11. 將字典列表轉換爲字典
- 12. Python將嵌套的MutableMapping轉換爲嵌套字典
- 13. 將表格數據轉換爲表示樹的嵌套字典
- 14. 將嵌套字符串列表轉換爲嵌套字符串列表
- 15. 將列表轉換爲字典列表
- 16. 解壓的嵌套字典的列表,並轉換爲CSV
- 17. 將嵌套列表轉換爲矩陣
- 18. 將數組轉換爲嵌套列表
- 19. 轉換列表中嵌套的列表和類型的字典
- 20. 轉換列表的列表到嵌套字典
- 21. 將嵌套列表字符串轉換爲列表
- 22. 如何將嵌套字典的列表轉換爲字符串,反之亦然
- 23. 將列表字典轉換爲字典列表
- 24. 將字典列表轉換爲唯一的字典列表
- 25. 轉換列表爲字典
- 26. 如何將字典列表轉換爲Python字典字典
- 27. 將元組列表轉換爲字典
- 28. 將列表轉換爲字典
- 29. (Python)將字典轉換爲列表?
- 30. 將JSON轉換爲字典列表
你能告訴我的代碼,這樣我可以查看它。 。 –
for i in rl: \t d = {i:d}這裏rl = l [-1:]其中l是一個列表,d是字典 –
d = {} for i in rl:d = {i:d } –