swift - swift中有什么包罗万象的吗?
问题描述
我有不同的输入,将是一个字符串,如:
"James"
"James(1)"
"James(2)"
我希望仅在删除后才将这些键的值插入字典(x)
我可以用什么来表示x
然后删除整个括号?
我目前的尝试如下所示:
replacingOccurrences(of: "(\((Any).self)", with: "")
但这不起作用..
所需的输出将是一个仅包含一个唯一值作为键的字典。
所以随着输入
["James" : 3, "James(1)" : 3, "James(2)" : 4, "Sarah" : 10, "Sarah(1)" : 10, "Sarah(2)" : 10 ]
我会得到这个输出
["James" : 10, "Sarah" : 30]
解决方案
我喜欢 George 的解决方案,但我认为这是uniquingKeysWith:
.
// Convert to [(name, value)], removing everything after "("
let keyValues = data.map { k, v in (String(k.prefix(while: { $0 != "(" })), v) }
// Sum matching values
let result = Dictionary(keyValues, uniquingKeysWith: +)
推荐阅读
- python - 允许用户在提交之前编辑或删除 Flask 上上传文件的列表
- android - 添加了多种风味维度,面临 .aar 文件生成问题
- wsl-2 - 如何在 WSL 2 上运行 Gitk?
- windows - Termux 远程连接 Win10 失败
- java - 软键盘与编辑文本字段重叠。尝试了所有通用解决方案
- python - Python 请求使用 POST 上传文件
- lucene - Umbraco Lucene 搜索中断“特殊字符”
- python - 重新启动菜单pygame蛇的第一次渲染性能缓慢
- xml - 使用 Powershell 按给定顺序编写 XML 文件
- php - 如果它在两个不同的日期之间,如何选择今天的日期