我试过:
d = {3:'a',2:'b'}
if 'B' in d.values():
print 'True'
对我B
来说等于b
,但我不想改变我的字典。
是否可以根据字典的值测试不区分大小写的匹配?
如何'B'
在不更改值的情况下检查字典中是否存在?
更复杂:
d = {3:'A',2:'B',6:'c'}
我试过:
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)