这条Python的翻译

2024-04-25 18:48:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python比较陌生,在翻译以下一行代码时遇到问题:

diffList = [key for key in set(dict1n.keys() + dict2.keys()) if dict1.get(key) != dict2t.get(key)]

有人能帮我重写一下吗?用一种“普通”的好格式把它分成几行?你知道吗

我想-我不确定-这行要做的是比较两个字典并将差异输出到一个列表中。你知道吗

谢谢。你知道吗

更新:我在这行有错别字-应该只有dict1和dict2:

diffList = [key for key in set(dict1.keys() + dict2.keys()) if dict1.get(key) != dict2.get(key

Tags: key代码inforgetif格式keys
3条回答

也就是说:

diffList = []
for key in set(dict1.keys() + dict2.keys()):
    if dict1.get(key) != dict2.get(key):
        diffList.append(key)

它基本上是生成一个新的列表,其中包含两个dict的唯一值。这些值不是每个键唯一的,也不一定是全局唯一的。你知道吗

集合是一种数据结构,其中每个唯一值只能有一个条目。因此,它将确保它只有独特的项目。这将确保每个键只检查一次。你知道吗

更新:根据问题的更新更改了一些内容。你知道吗

在英语中是:

列出以下键:

  • 出现在至少一本词典中
  • 但这两个字典中的值并不相同
    • 将案例:dictX[key] is None和:key not in dictY视为具有相同的值(这就是dict.get()的工作原理)

您发布的代码是"List Comprehension"

这意味着:

diffList = []
for key in  set(dict1n.keys() + dict2.keys()):
  if dict1.get(key) != dict2t.get(key):
    diffList.append(key)

相关问题 更多 >

    热门问题