【发布时间】:2020-10-08 14:21:24
【问题描述】:
我正在做一个项目,我的情况是有多个字典,它们都包含相同的长度并且也填充了相同的键,每个值都是不同的灰度图片,所以是一个数组。
d1 = {'1' : 'a1' , '2' : 'a2' , '3' : 'a3'}
d2 = {'1' : 'b1' , '2' : 'b2' , '3' : 'b3'}
d3 = {'1' : 'c1' , '2' : 'c2' , '3' : 'c3'}
你知道如何使用这些字典并构建一个包含所有图片但键从 1 开始到 n 结束的大字典,n 是图片的数量?图片的顺序无关紧要。
像这样:
d_new = { ' 1 ' : ' a1 ' , ' 2 ' : ' a2 ' , ' 3 ' : ' a3 ' , ' 4 ' : ' b1 ' , ' 5 ' : ' b2 ' , ' 6 ' : ' b3 ' , ' 7 ' : ' c1 ' , ' 8 ' : ' c2 ' , ' 9 ' : ' c3 ' }
因为键是相同的,所以当我合并它们时,我只得到一个长度为一个字典的字典。也不可能手动更改键的名称,然后合并字典,因为字典的数量取决于用户输入,范围从创建的 1 到 104400 个字典。
我还尝试使用嵌套字典,在尝试访问图片时出现“不可哈希”错误。
是否有一个简单的方法可以解决我遗漏的问题?
提前致谢:)。
干杯
编辑:谢谢你们,你们的大多数解决方案都很有魅力:)
【问题讨论】:
-
将键从字符串更改为数字是否重要?目前,您将 '1' '2' 等作为字符串而不是实际数字。你也在 Python 3.6+ 上,如果是的话:项目字典条目是否保证是有序的?如果它们是,您可以按顺序遍历每个字典,并在程序上从 1 开始创建新的数字键。(我想您可以将
str()粘贴在它周围并再次返回字符串)如何提供输入字典?作为一个列表?
标签: python dictionary merge key