Accessing Python dict values with the key start characters

You can't do such directly with dict[keyword], you've to iterate through the dict and match each key against the keyword and return the corresponding value if the keyword is found. This is going to be an O(N) operation.

>>> my_dict = {'name': 'Klauss', 'age': 26, 'Date of birth': '15th july'}
>>> next(v for k,v in my_dict.items() if 'Date' in k)
'15th july'

To get all such values use a list comprehension:

>>> [ v for k,v in my_dict.items() if 'Date' in k]
['15th july']

use str.startswith if you want only those values whose keys starts with 'Date':

>>> next( v for k,v in my_dict.items() if k.startswith('Date'))
'15th july'
>>> [ v for k,v in my_dict.items() if k.startswith('Date')]
['15th july']

not the best solution, can be improved (overide getitem)

class mydict(dict):
    def __getitem__(self, value):
        keys = [k for k in self.keys() if value in k]
        key = keys[0] if keys else None
        return self.get(key)


my_dict = mydict({'name': 'Klauss', 'age': 26, 'Date of birth': '15th july'})
print(my_dict['Date'])# returns 15th july