我想筛选特定字符串的Python字典的键。筛选列表中所有项目的Python字典的键
def filterDictionary(filterdata):
dictionaryToFilter = {'car 1':100,'car 2': 200, 'car 3':300, 'bus 1':1000, 'bus 2':2000, 'bus 3':3000}
filterInput =[]
filterInput = filterdata.split()
for a in filterInput:
dictonaryFiltered = {k:v for (k,v) in dictionaryToFilter.items() if a in k}
return dictonaryFiltered
我来这里我的代码过滤器对于任何输入的字符串,用空格分隔的键点,但我想拥有它过滤了所有的人。例如,filterDictionary('ca 1')将返回{'car 1':100,'bus 1':1000} ,我希望它仅返回{'car 1':100}。
我想这是使用all()完成的,但我无法弄清楚。
谢谢。
注意,你*迭代*'filterInput',所以词典中,你只返回包括检查最后一个字符“1”,这个字符在所有的键中。你需要把'all'和迭代放在**字典理解的内部'filterInput' **上。另外,'dictionaryToFilter'应该可能是函数的第二个参数。 – jonrsharpe 2015-02-08 14:36:48
谢谢大家的例子和解释。 – 2015-02-08 17:13:48