您不能直接使用来执行此操作dict[keyword],您必须遍历dict,并将每个键与关键字进行匹配,如果找到了关键字,则返回相应的值。这将是一项O(N)操作。>>> 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'要获取所有这些值,请使用列表推导:>>> [ v for k,v in my_dict.items() if 'Date' in k]['15th july']使用str.startswith,如果你只希望它的键与“日期”开始的值:>>> 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']
当然有可能:print next(val for key, val in my_dict.iteritems() if key.startswith('Date'))但这会导致对字典进行全面扫描。它只会找到第一个这样的匹配键(其中“ first”是任意的)并引发,StopIteration而不是KeyError没有键匹配。为了更接近您的想法,最好将其编写为一个函数:def value_by_key_prefix(d, partial): matches = [val for key, val in d.iteritems() if key.startswith(partial)] if not matches: raise KeyError(partial) if len(matches) > 1: raise ValueError('{} matches more than one key'.format(partial)) return matches[0]