Swift Dictionary с массивом строк удалить значение
63
9
Итак, у меня есть словарь, содержащий массив строк:
var dict = ["Section1": ["dev1", "dev2"], "Section2": ["dev3", "dev4"]]
И теперь я должен уметь удалить значение из массива. Пример: я хочу удалить "dev4" независимо от того, находится ли он в разделе "Раздел 1" или "Раздел 2".
Как я буду это делать?
спросил(а)
2021-01-19T14:53:28+03:00
2 месяца, 3 недели назад
добавить комментарий
пожаловаться
Решение
86
С Swift4 существует возможность применить карту к значениям словаря:
var dict = ["Section1": ["dev1", "dev2"], "Section2": ["dev3", "dev4"]]
dict = dict.mapValues{ $0.filter{ $0 != "dev4" } }
который дает результат:
dict // -> ["Section1": ["dev1", "dev2"], "Section2": ["dev3"]]
ответил(а)
2021-01-19T14:53:28+03:00
2 месяца, 3 недели назад
добавить комментарий
пожаловаться
62
for key in dict.keys {
dict[key] = dict[key]!.filter({ $0 != "dev4"})
}
ответил(а)
2021-01-19T14:53:28+03:00
2 месяца, 3 недели назад
добавить комментарий
пожаловаться
45
Мини-версия:
dict.forEach({ (k, v) in dict[k] = v.filter({ $0 != "dev4" }) })
print(dict) // ["Section1": ["dev1", "dev2"], "Section2": ["dev3"]]
ответил(а)
2021-01-19T14:53:28+03:00
2 месяца, 3 недели назад
добавить комментарий
пожаловаться
44
Некоторые примеры кода:
func removeValue(value: String, fromDict dict: [String: [String]]) -> [String: [String]] {
var out = [String: [String]]()
for entry in dict {
out[entry.key] = entry.value.filter({
$0 != value
})
}
return out
}
var dict = ["Section1": ["dev1", "dev2"], "Section2": ["dev3", "dev4"]]
let new = removeValue(value: "dev4", fromDict: dict)
ответил(а)
2021-01-19T14:53:28+03:00
2 месяца, 3 недели назад
добавить комментарий
пожаловаться
Ваш ответ
Еще в рубрике
97
Pandas DataFrame для указания значений в виде кортежей
76
Преобразование списка списков в словарь списков
61
Определение произношения с пользовательскими словарями (Nuance Vocalizer Expressive TTS 5.4)
132
Как добавить значения из массива как объекта в изменяемом словаре с объективом-c?
- Вопросы
- Dictionary
- Swift Dictionary с массивом строк удалить значение