我试过了:
d = {3:'a',2:'b'}
if 'B' in d.values():
print 'True'
对我来说B
等于b
,但我不想改变我的字典。
是否可以测试与字典值的不区分大小写的匹配?
如何在不更改值的情况下检查字典中是否存在'B'
?
更复杂:
d = {3:'A',2:'B',6:'c'}
您必须遍历这些值:
if any('B' == value.upper() for value in d.itervalues()):
print 'Yup'
对于 Python 3,请将 .itervalues()
替换为 .values()
。这将测试最小值数;不会创建中间列表,并且 any()
循环在找到匹配项时终止。
演示:
>>> d = {3:'a',2:'b'}
>>> if any('B' == value.upper() for value in d.itervalues()):
... print 'Yup'
...
Yup
if 'b' in map(str.lower, d.values()):
...
if filter(lambda x:d[x] == 'B', d):
print "B is present
else:
print "b is not present"
试试这个..
import sys
d = {3:'A',2:'B',6:'c'}
letter = (str(sys.argv[1])).lower()
if filter(lambda x : x == letter ,[x.lower() for x in d.itervalues()]):
print "%s is present" %(letter)
else:
print "%s is not present" %(letter)