list - 从现有列表创建一组对列表
问题描述
假设我有以下列表:
val my_list = List("a","b","c","d")
我想要写一个get_set_pairs
这样的函数get_set_pairs(my_list)
:
List(Set("a","b"), Set("a","c"), Set("a","d"), Set("b","c"), Set("b","d"), Set("c","d"))
我知道如何使用 for 循环来做到这一点。我正在尝试找到一种功能强大且有效的方法
谢谢你的帮助
解决方案
您可以使用combinations
条目并将其映射到集合:
my_list.combinations(2).map(_.toSet).toList
// List[scala.collection.immutable.Set[String]] = List(Set(a, b), Set(a, c), Set(a, d), Set(b, c), Set(b, d), Set(c, d))
推荐阅读
- laravel - 利用 laravel 资源返回 API 数据时更改键名
- c - 递归函数在C中打开文件后的错误文件描述符
- video - 我怎样才能使视频没有索引位置和总长度,就像原始比特流格式一样,但它可以有音频流?
- python-3.x - 连接变量 + 字符串给出 TypeError: can only concatenate list (not "str") to list
- mysql - SELECT MAX from COUNT,其他行变量不正确
- java - JUnits 中@RepositoryRestResource 的 url 上的 404
- php - 根据 codeigniter 中的用户角色重定向到页面
- javascript - 修改函数变量中的变量
- python - 无法替换字符串中的字符
- gradle - 无法应用插件 [class 'io.spring.gradle.dependencymanagement.DependencyManagementPlugin']