Как удалить ключ из словаря, где значение X? Мне нужна функция dictionary.removeKeyForValue (...).Удалить ключ из словаря для заданного значения
Я хотел бы оптимизировать следующий код. У меня есть текст, который связан с определенной категорией и словарем, который связывает все ключевые слова с категориями. Хотя мой текст уже классифицирован, я бы хотел проверить, не попадает ли он в другую категорию.
let text = "he said hello and then ran away" // This is taken from the "activity" category
// Dictionary associating keywords to categories
let categoryRules = ["hi" : "greeting", "hello" : "greeting", "jogging" : "activity", "joy" : "feeling"]
let keywords = Array(categoryRules.keys)
// Make out of text an Array of words.
let textWordArray = text.lowercaseString.characters.split{$0 == " "}.map(String.init)
// I SHOULDN'T HAVE TO GO THROUGH THE KEYS ASSOCIATED WITH "ACTIVITY" BECAUSE TEXT IS ALREADY IN IT.
for keyword in keywords {
// If text contains the rule
if let index = textWordArray.indexOf(keyword) {
// Get the associated category
if let category = categoryRules[keyword] {
print("The text should fall into the category of \(category)")
break
}
}
}
«Мне нужна функция dictionary.removeKeyForValue (...)». У этого плохой запах. Если вы считаете, что вам нужно что-то искать в словаре по _value_, вы неправильно построили словарь. – matt