我想篩選特定字符串的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