scala - 如何获取scala列表中重复对的索引
问题描述
我有一个像下面这样的 scala 列表:
slist = List("a","b","c","a","d","c","a")
我想在这个列表中获取相同元素对的索引。例如,这个 slist 的结果是
(0,3),(0,6),(3,6),(2,5)
其中 (0,3) 表示slist(0)==slist(3)
(0,6) 表示slist(0)==slist(6)
等等。
那么在scala中有什么方法可以做到这一点吗?非常感谢
解决方案
val v = slist.toVector; val s = v.size
for(i<-0 to s-1;j<-0 to s-1;if(i<j && v(i)==v(j))) yield (i,j)
在 Scala REPL 中:
scala> for(i<-0 to s-1;j<-0 to s-1;if(i<j && v(i)==v(j))) yield (i,j)
res34: scala.collection.immutable.IndexedSeq[(Int, Int)] = Vector((0,3), (0,6), (2,5), (3,6))
推荐阅读
- python - 使用 Python 3.7 和 Webdriver,如何在 "
我在下面包含部分 HTML。我相信我已经使用以下命令找到了更大的元素:
driver.find_element_by_xpath('//div[@id="day-number-4"]')
- javascript - 如何在父 div 中获取 div 的索引?
- c# - 如何在树状数据中将存储在子对象中的数值迭代和求和到父对象
- javascript - Async / Await with Firebase / Firestore 在 forEach 中
- excel - 根据现有列表创建和更新工作表
- php - Wordpress 错误:本网站出现严重错误。请检查您的站点管理员电子邮件收件箱以获取说明
- javascript - 如何导出 Canva Render 有带有 CSS 修改的 GIF
- xtext - 无法解析 JvmTypeReference
- angular - 可以使用 angular 将 firebase 文档及其所有子集合复制到另一个文档
- python - 如何比较 Python 中具有 np.nan 值的 2 个列表,因为 np.nan 不可比较?