我有一本字典:
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'
答案 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
添加新的键) )?
这将比较键a
和b
的值,并将结果分配给键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'}