2

私は試した:

d = {3:'a',2:'b'}

if 'B' in d.values():
    print 'True'

私にとってBは に等しいbですが、辞書を変更したくありません。

辞書の値に対して大文字と小文字を区別しない一致をテストすることは可能ですか?

'B'値を変更せずに辞書に存在するかどうかを確認する方法は?

#

より複雑:

d = {3:'A',2:'B',6:'c'}
4

4 に答える 4

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
于 2013-09-06T10:03:44.103 に答える
1
if 'b' in map(str.lower, d.values()):
   ...
于 2013-09-06T10:04:39.707 に答える
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)
于 2013-09-06T11:08:50.337 に答える