给定字典,我如何检查其两个键是否相同?

时间:2019-05-25 22:16:13

标签: python python-3.x dictionary

我有一本字典:

dict_one={'a':'the quick brown fox.','b':'the quick brown fox.', 'c':'good night guys',...,'n':'hey there'}

我如何检查键a和键b的字符串值是否相同,并向字典equals添加新的密钥到字典,显示它们是否不同或相等值(是/否)?

dict_one={'a':'the quick brown fox.','b':'the quick brown fox.', 'c':'good night guys',...,'n':'hey there', 'equals':True}

我试图:

for i,j in dict_one.iteritems():
 if (a==b):
     return 'True'
 else:
      return 'False'

3 个答案:

答案 0 :(得分:2)

因此,从您的示例中,您只想检查两个(不是您在问题标题中所写的键)是否相同,但是您不必关心它们是哪个。最快,最简单的方法可能是

len(set(dict_one.values())) < len(dict_one)

这会将字典的所有值转换为一个集合,如果有重复项,则其包含的项目将少于原始字典。因此,如果dict中的任何值重复,上述代码将返回true,并且将以O(n)而不是您尝试采用的解决方案的O(n ^ 2)的形式运行。

编辑:为了完整性:

dict_one['equals'] = len(set(dict_one.values())) < len(dict_one)

将根据您的要求在字典中设置条目

答案 1 :(得分:2)

您问两个不同的问题:

  

给字典,我该如何检查两个键是否相同?

定义上的字典不能有重复的键。

  

如何检查键a和键b的字符串值是否相同,如果值不同或相等(真/假,则向字典equals添加新的键) )?

这将比较键ab的值,并将结果分配给键equals

dict_one['equals'] = dict_one['a'] == dict_one['b']

答案 2 :(得分:-1)

使用dict.update()

dict_one={'a':'the quick brown fox.','b':'the quick brown fox.', 'c':'good night guys','n':'hey there'}

dic = {'equal':True} if dict_one['a']==dict_one['b'] else {'equal':False}

dict_one.update(dic)
print(dict_one)

输出

dict_one={'a':'the quick brown fox.','b':'the quick brown fox.', 'c':'good night guys',...,'n':'hey there'}