【问题标题】:How to remove filtered element from dictionary?如何从字典中删除过滤的元素?
【发布时间】:2022-01-14 20:31:38
【问题描述】:
var scores: [String: Int] = ["Alex" : 4, "Rocco": 5, "Britney": 3, "Chad": 2, "John": 5]

func removeStudent() -> [String: Int]{
   let filtered = scores.filter{ $0.value < 3}
   return filtered
}

【问题讨论】:

  • 你到底在问什么,代码似乎按预期工作?
  • 只是想弄清楚在这个函数之后我如何删除过滤后的对,并没有真正明白我该怎么做((

标签: swift dictionary


【解决方案1】:

您的代码将您的字典过滤为值小于 3 的条目。您想改为从字典中删除这些值吗?所以重写你的过滤器语句来选择你想要保留的项目,而不是你想要摆脱的项目。

在这种情况下,您需要一个过滤器闭包,它可以为您提供相反的效果(您当前正在过滤的项目)。

&lt; 3 的倒数是&gt;= 3。因此,将您的过滤器语句重写为:

func studentsToKeep() -> [String: Int]{
   let keep = scores.filter{ $0.value >= 3}
   return keep
}

【讨论】:

  • 谢谢!它有效!
  • 请注意,对全局字典进行操作并始终执行相同任务的函数并不是那么有用。与其编写自定义函数,不如在需要时调用filter() 更有意义。 (该函数可以替换为单个调用filter()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-17
  • 2021-04-09
  • 2015-12-30
  • 1970-01-01
  • 2016-05-06
  • 2011-08-16
相关资源
最近更新 更多