gpt4 book ai didi

python - 缩短字典中键的长度

转载 作者:行者123 更新时间:2023-12-02 16:03:47 25 4
gpt4 key购买 nike

我一直在尝试缩短字典的键。

这是d1:

{
'A0Z40': [ 'A14160,A14161,A14162,A14163,A14164,A14165,A14166' ],
'A0Z41': [ 'A1403,A1407,A1408,A1409,A1410,A1411' ],
'A0Z42': [ 'A1201,A1205', 'A12041,A12042,A12043,A12044,A12045,A12046' ],
'A0Z43': [ 'A1101' ]
}

我正试图得到这个:

{
'A0Z' : [ 'A14160,A14161,A14162,A14163,A14164,A14165,A14166' ],
[ 'A1403,A1407,A1408,A1409,A1410,A1411' ],
[ 'A1201,A1205', 'A12041,A12042,A12043,A12044,A12045,A12046' ],
['A1101']
}

我尝试过字典理解

d = {k[:3] : v for k, v in d.items() }

但是它删除了值,因为字典只能有唯一的键...

还有其他解决办法吗?

非常感谢

最佳答案

您可以通过使用 get 和默认值的常规 for 循环来完成此操作

d = {}
for k, v in d1.items():
d[k[:3]] = d.get(k[:3], []) + v

这会将值中的列表合并到键 'A0Z' 下的一个列表中

{'A0Z': ['A14160,A14161,A14162,A14163,A14164,A14165,A14166', 'A1403,A1407,A1408,A1409,A1410,A1411', 'A1201,A1205', 'A12041,A12042,A12043,A12044,A12045,A12046', 'A1101']}

如果您希望将值作为列表的列表,只需在每次迭代中将值 v 放入列表中即可

d[k[:3]] = d.get(k[:3], []) + [v]

输出:

{'A0Z': [['A14160,A14161,A14162,A14163,A14164,A14165,A14166'], ['A1403,A1407,A1408,A1409,A1410,A1411'], ['A1201,A1205', 'A12041,A12042,A12043,A12044,A12045,A12046'], ['A1101']]}

关于python - 缩短字典中键的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69961743/

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