function - 一个列表中有多少元素存在于另一个列表中
问题描述
我似乎无法创建一个将两个列表作为参数并返回两个列表中有多少共同元素的函数。例如 f [1, 2, 4, 2] [2, 3, 4, 4] 返回 2(忽略重复)。有什么建议么?我试过这个
*Main> a = [1, 2, 3]
*Main> b = [2, 3, 4]
*Main> [x | x <- a, x <- b]
[2,3,4,2,3,4,2,3,4]
然后我打算使用长度函数来知道有多少项目是共同的。
解决方案
您不想x
从两个列表中提取一个;从一个列表中提取,并检查它是否存在于另一个列表中。
> a = [1,2,3]
> b = [4,3,2]
> [x | x <- a, x `elem` b]
[2,3]
> [x | x <- b, x `elem` a]
[3,2]
请注意,项目出现在结果中的顺序取决于它们出现在您从中提取的列表中的顺序。
推荐阅读
- c++ - 获取 C++ 中矩阵的所有可能组合
- sql - sql查询中带有字符串的比较运算符
- python - Python 应用程序在通过 pip 安装时有效,但在直接运行时无效
- python - 在显示中使用 2D 掩码错误掩码 BGR 图像
- java - 如何使用 Class.getMethod 作为吸气剂?
- javascript - 当用户离开某些网页时如何触发事件?
- json - 如何使用 JOLT 转换复杂的 JSON 嵌套数组?
- java - 如何在两个实体(不相关的实体)之间使用 Hibernate 进行连接
- scala - 对代码在 ScalaTest 中无异常运行的单元测试
- docker - Web 应用程序未通过 Docker 容器运行