私は試した:
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()):
...
これを試して ..
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)