Python 3.5 字典比较

标签 python python-3.x dictionary

我正在尝试比较一本字典的所有元素,以确保它们在一秒钟内具有正确的数字。我是Python新手,所以我知道我可能遗漏了一些简单的东西,而且我已经在这个问题上工作了几个小时,所以我的代码可能非常丑陋和错误。这是我迄今为止所拥有的示例。

try:       
    for key in dict_one:
        if dict_two.get(key, 0) == dict_one[key]:
           del dict_one[key]
           if dict_one[key] < 0 :                
              return False
        else:
             return True
except KeyError:
   pass

我也尝试过 all(dict_two.get(key,0)) 但没有成功。最终输出应检查您是否可以使用 dict_one 中的单词拼写 dict_two 中的单词 True 如果可以的话,False 如果你不能,那么如果 dict_two 单词需要三个 E,那么 dict_one 应该有 3 个 E,否则返回 false。或者如果您拼写 bunny ex dict_one = {b: 1, u: 1, n:1, y:1, x: 3}dict_two ={b: 1, u: 1. n: 2, y:1} False 因为单词中需要 2 个 N,而 dict_one 只有一个。

当我输入一个单词时,我可以让 dict_two 正确填充,并且 dict_one 正确地提取随机数和这些数字的数量。我可以让它们正确比较每个字母中包含的字母,但我无法让它针对所需字母的数量产生正确的答案 True 或 False 。我觉得我已经接近答案了,但当我尝试新事物并挖得更深时,情况就会变得更糟。

谢谢!

最佳答案

因此,您想要检查 dict2 中的每个字母在 dict1 中的映射至少与 dict2 中映射的字母一样大?这很容易完成。

def can_spell(dict1, dict2):
    try:
        return all(dict1[k] >= v for k, v in dict2.items())
    except KeyError:
        return False

这会获取 dict2 中的每个(键,值)对,然后将 v 与 dict1 中该键的映射进行比较。当且仅当该生成器理解中的每个表达式都为 true 时,all 返回 True

关于Python 3.5 字典比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40097366/

相关文章:

python - 如何配置 python cffi 库以使用 mingw?

python - 试图理解 Python 中的缩进

python - ModuleNotFoundError : No module named msg1 (in ubuntu with python 2. 7.6 未显示任何错误)

python - 如何计算字典列表中特定字典键的出现次数

python - 比较两个嵌套字典

python - 修复多列条件的值

python - 在 python 中使用 pandas 时 df.query 产生空结果

python - 如何修复 'Meta.fields'不得包含非模型字段名称: username for django graphene authentication endpoint

python - 如何使用 Python 打开 AutoCAD 的一个实例中目录中的所有 .dwg 文件

python - 如何更改字典的键和值