python反转字典的键和值_在python3中反转字典中的键和值(值不是唯一的)

我很确定你的意思是期望的输出不是集合d = {1,{'a','c'},2,{'b','c'}}

而是字典

^{pr2}$

再检查一遍这里:-). 在

不管怎样,我会这么做的:

^{3}$

如果^{子类defaultdict可以简化为return,如果规范对此非常严格,则只需将其转换为dict。在

我想下一步很可能是一个“oops,imports are not allowed”来禁止collections.defaultdict,所以我预计在这种情况下,应该这样做(例如)def invert_dict(d):

result = {}

for k in d:

if d[k] not in result:

result[d[k]] = set()

result[d[k]].add(k)

return result

补充:显然,最新版本是至关重要的(当然,在第一时间“忘记”添加“禁止进口”的限制,为什么他们总是对我这样做?!所有的约束条件都会暴露出来吗但是一个调整是必要的,单例集合需要变成他们唯一元素的非集合(一个可怕的,可怕的,没有好的规范,使得最终的字典几乎无法使用,并且让我强烈希望有一些尖锐的词,没有任何好的地方,似乎相信制造令人讨厌的坏规格可以提高他们的教学,但是,这就是又一次咆哮)。在

无论如何,最好是添加一个后处理步骤:def invert_dict(d):

result = {}

for k in d:

if d[k] not in result:

result[d[k]] = set()

result[d[k]].add(k)

return {k: d[k] if len(d[k])>1 else d[k].pop() for k in d}

没什么难做的:只需“展开”singleton就可以使用pop来设置它们的一个项。(下一个迟来的启示是,另一个愚蠢的武断约束,比如“没有if/else表达式”?!-)在

添加(保留上面的错误代码):需要在return语句中清楚地使用resultnotd!一、 最后一行必须是return {k: result[k] if len(result[k])>1 else result[k].pop() for k in result}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值