为了账号安全,请及时绑定邮箱和手机立即绑定

有人能解释一下这是如何遍历字典的吗?

有人能解释一下这是如何遍历字典的吗?

尚方宝剑之说 2021-12-17 14:50:05
我有两本字典,我想比较一下,看看两者有什么不同。我感到困惑的地方是dict. 有这个名字吗?一切正常,我只是不明白它为什么有效或它在做什么。x = {"#04": 0, "#05": 0, "#07": 0, "#08": 1, "#09": 0, "#10": 0, "#11": 1, "#12": 1, "#14": 1, "#15": 1, "#17": 0, "#18": 1, "#19": 1, "#20": 1}y = {"#04": 1, "#05": 0, "#07": 0, "#08": 1, "#09": 0, "#10": 0, "#11": 1, "#12": 1, "#14": 1, "#15": 0, "#17": 1, "#18": 1, "#19": 0, "#20": 1}dict = {k: x[k] for k in x if y[k] != x[k]}list = []for k, v in dict.items()  if v==0:    difference = k + ' became ' + '0'    list.append(difference)  else:    difference = k + ' became ' + '1'    list.append(difference)print(list)它应该打印,['#04 became 0', '#15 became 1', '#17 became 0', '#19 became 1']但我不明白dict循环遍历 x 和 y 字典的工作原理。
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

执行的过程是比较两个字典,假设它们具有相同的键(y可能有更多条目)。


为了快速进行比较,并方便下一个代码块,他们决定生成一个字典,其中只包含具有不同值的键。


为了生成这样的字典,他们使用了“字典理解”,这是非常有效的。


现在,这个构造:


d = {k: x[k] for k in x if y[k] != x[k]}

可以改写为:


d = {}

for k,v in x:          # for each key->value pairs in dictionary x

    if y[k] != x[k]:   # if the corresponding elements are different

        d[k] = x[k]    # store the key->value pair in the new dictionary

你可以x[k]用v上面的代替。


查看完整回答
反对 回复 2021-12-17
  • 1 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信