Цікаво, як краще вчинити?
d = {'a': 1, 'b': 2}
'a' in d
True
або:
d = {'a': 1, 'b': 2}
d.has_key('a')
True
"В" виграє беззаперечно, і не лише в елегантності (яка не втрачає своєї актуальності;-), але й у продуктивності, наприклад:
$ python -mtimeit -s'd=dict.fromkeys(range(99))' '12 in d'
10000000 loops, best of 3: 0.0983 usec per loop
$ python -mtimeit -s'd=dict.fromkeys(range(99))' 'd.has_key(12)'
1000000 loops, best of 3: 0.21 usec per loop
Хоча наступне спостереження не є завжди вірним, ви помітите, що зазвичай, у Python, швидший розв'язок є більш елегантним та пітонівським; ось чому mtimeit
є ТАКИМ корисним - це не просто економія сотні наносекунд тут і там!-)