我有一本名为 z 的字典,看起来像这样
{0:[0.28209479177387814、0.19947114020071635、0.10377687435514868、0.07338133158686996]、
-1:[0.28209479177387814,0.19947114020071635,0.10377687435514868,0.07338133158686996]}。
我想翻转值和键
{0.28209479177387814:0、0.19947114020071635:0、0.10377687435514868:0、0.07338133158686996:0,
0.28209479177387814:-1, 0.19947114020071635:-1, 0.10377687435514868:-1, 0.07338133158686996:-1}
似乎有效的代码是:
for a in z:
newdict=dict.fromkeys(z[a],a)
但它只适用于 z 中的键之一并返回:
{0.28209479177387814:-1,0.07338133158686996:-1,0.10377687435514868:-1,0.19947114020071635:-1}
我究竟做错了什么?
正如您在问题的评论中已经看到的那样,Python 字典不能有重复的键,因为给定键的正确单个值存在不确定性
这可以通过与第一个结构平行来解决,所以而不是{value:key}
, 这将是{value:[key1, key2]}
。生成它的代码是:
new = {}
for key, value in z.items():
if not value in new:
new[value] = []
new[value].append(key)
有关更多详细信息,请参阅亚当·斯密的回答。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)