gpt4 book ai didi

Python:从字典创建子字典

转载 作者:行者123 更新时间:2023-12-02 21:24:51 25 4
gpt4 key购买 nike

我有一个Python字典,比如说

dic = {"aa": 1,
"bb": 2,
"cc": 3,
"dd": 4,
"ee": 5,
"ff": 6,
"gg": 7,
"hh": 8,
"ii": 9}

我想制作长度为 3 的子字典元素列表,例如

dic = [{"aa": 1, "bb": 2, "cc": 3},
{"dd": 4, "ee": 5, "ff": 6},
{"gg": 7, "hh": 8, "ii": 9}]

我附带了以下代码:

dic = {"aa": 1,
"bb": 2,
"cc": 3,
"dd": 4,
"ee": 5,
"ff": 6,
"gg": 7,
"hh": 8,
"ii": 9}
i = 0
dc = {}
for k, v in dic.items():
if i==0 or i==3 or i==6:
dc = {}
dc[k] = v
if i==2 or i==5 or i==8:
print dc
i = i + 1

输出:

{'aa': 1, 'ee': 5, 'hh': 8}
{'cc': 3, 'bb': 2, 'ff': 6}
{'ii': 9, 'gg': 7, 'dd': 4}

有什么Pythonic方法可以做同样的事情吗?

最佳答案

您可以这样尝试:首先,从字典中获取项目,作为键值对列表。字典中的条目是无序的,因此如果您希望 block 具有一定的顺序,请对项目进行排序,例如通过 key 。现在,您可以使用列表理解,从项目列表中切出 3 个 block 并将它们转回字典。

>>> items = sorted(dic.items())
>>> [dict(items[i:i+3]) for i in range(0, len(items), 3)]
[{'aa': 1, 'bb': 2, 'cc': 3},
{'dd': 4, 'ee': 5, 'ff': 6},
{'gg': 7, 'hh': 8, 'ii': 9}]

关于Python:从字典创建子字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25207133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com