我试过了:
d = {3:'a',2:'b'}
if 'B' in d.values():
print 'True'
对我而言B
等于b
,但我不想更改我的字典。
可以测试针对字典值的不区分大小写的匹配吗?
如何在不更改值的情况下检查字典中是否存在'B'
?
更复杂:
d = {3:'A',2:'B',6:'c'}
答案 0 :(得分:3)
你必须遍历这些值:
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
答案 1 :(得分:1)
if 'b' in map(str.lower, d.values()):
...
答案 2 :(得分:0)
试试这个..
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)