【问题标题】:How to remove duplicate tuples using scala? [duplicate]如何使用scala删除重复的元组? [复制]
【发布时间】:2014-10-06 06:26:12
【问题描述】:

我想删除重复的元组。例如,这些是元组值

(eraser,pen)
(pen,eraser)
(pen,book)
(pen,pencil)
(book,pen)
(book,pencil)
(pencil,pen)
(pencil,book)

我想要的结果是,

(eraser,pen)
(pen,book)
(pen,pencil)
(book,pencil)

注意:这些元组的形式是(String,String)

【问题讨论】:

  • 尝试将所有元素放在一个 scala 集中 - 重复项将被自动删除 - w3z.in/632
  • 先生,实际上我是在计算了一些操作后得到了这些元组。但是这里 (eraser,pen) & (pen,eraser) 出现了,这两个是一样的。所以我只需要一个。
  • 如果您可以编辑问题并更详细地解释问题会有所帮助吗?

标签: scala collections


【解决方案1】:

List(
  ("eraser","pen"),
  ("pen","eraser"),
  ("pen","book"),
  ("pen","pencil"),
  ("book","pen"),
  ("book","pencil"),
  ("pencil","pen"),
  ("pencil","book")
).map{case (a, b) => if(a > b) (a, b) else (b, a)}.distinct

【讨论】:

    【解决方案2】:

    这可能会有所帮助

    //val l = List(...)
    (l foldLeft List.empty[(String,String)]){
      case (l,a) if !l.contains(a) && !l.contains(a.swap) => a :: l
      case (l, _) => l
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 2019-03-07
      • 2019-01-15
      • 2017-08-12
      • 1970-01-01
      • 2018-02-13
      相关资源
      最近更新 更多