Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 比较不同字典的键和值_Python 3.x - Fatal编程技术网

Python 3.x 比较不同字典的键和值

Python 3.x 比较不同字典的键和值,python-3.x,Python 3.x,如果有两个字典,它们彼此共享多个键: 字典_1={'apple':0,'berry':2} 字典2={'apple':1,'berry':1,'banana':1} 我如何比较它们并确定: (1) :如果dictionary\u 2键是dictionary\u 1键中的all 错误,因为“香蕉”丢失 (2) :以及如果字典_1中的值高于字典_2中的相应值? False,因为字典_1中“apple”的值较低 您可以检查字典2.keys()是否是字典1.keys()的子集,使用您可以检查字

如果有两个字典,它们彼此共享多个键:

字典_1=
{'apple':0,'berry':2}

字典2=
{'apple':1,'berry':1,'banana':1}

我如何比较它们并确定:

  • (1) :如果
    dictionary\u 2
    键是
    dictionary\u 1
    键中的all
    • 错误,因为“香蕉”丢失
  • (2) :以及如果
    字典_1
    中的值高于
    字典_2
    中的相应值?
    • False,因为字典_1中“apple”的值较低


您可以检查
字典2.keys()
是否是
字典1.keys()
的子集,使用
您可以检查
字典2.keys()
是否是
字典1.keys()
的子集,使用
=
?编辑了“Pythonic”部分。我认为在Python 3x中,他们引入了类似“这看起来更像是两个问题而不是一个问题”(不,你不能比较字典,但你可以使用
dict.keys()
返回一个类似集合的对象,你可以比较它)。@geetransition“你不能比较字典”是什么意思“?这正是
=
所做的。你不能比较它们。但是你可以检查它们是否相等。(在检查哪个更大时进行比较。)你是否尝试过使用
=
?编辑了“Pythonic”部分。我想在python3x中,他们引入了类似于“这看起来更像是两个问题而不是一个问题”的内容。(不,您不能比较字典,但可以使用
dict.keys()
返回一个类似集合的对象,您可以进行比较。@Geetrance“您不能比较字典”是什么意思?这正是
==
所做的,您不能比较它们。但您可以检查它们是否相等。(在检查哪一个“更大”时进行比较。)我认为可以将检查与智能使用
相结合。获取
@DeepSpace您必须知道值的类型。如果值为int,那么0就可以了。否则,如果没有巫毒魔法,很难将它们结合起来。@geetrance假设值为
int
float
(99.99%的情况)没有伏都教needed@DeepSpacelol伏都教是为最尖锐的情况保留的(也是负值)。这是一个很好的解决方案,一个小建议:
all(dictionary_1[key]>=dictionary_2[key]表示dictionary in dictionary_1)
这是“问题”的解决方案,但我明白了。谢谢!我认为可以将检查与
的巧妙使用结合起来。get
@DeepSpace您必须知道值是哪种类型。如果值是int,那么0就可以了。否则,如果没有巫毒魔法,很难将它们结合起来。@geetrance假设值是
Int
浮点
(99.99%是这种情况)没有巫毒needed@DeepSpacelol伏都教是为最尖锐的情况保留的(也是负值)。这是一个很好的解决方案,一个小建议:
all(dictionary_1[key]>=dictionary_2[key]表示dictionary in dictionary_1)
这是“问题”的解决方案,但我明白了。谢谢!
print(dictionary_2.keys() <= dictionary_1.keys())
all(dictionary_1[key] > dictionary_2[key] for key in dictionary_2)