我有两个元组列表,都是 [(a,b),..] 形式的。
我希望比较它们并获得共同的元素 - 但已尝试使用相交,但这不起作用。有没有办法使用 map/filter 将交集输出为新的元组列表?
最佳答案
尝试使用列表理解:
[x | x <- list1, x `elem` list2]
例子:
Prelude> let list1 = [(1,2), (2,3), (3,4)]
Prelude> let list2 = [(1,2), (2,3), (3,5)]
Prelude> [x | x <- list1, x `elem` list2]
[(1,2),(2,3)]
无论如何,intersect
应该有用,它对我有用:
Prelude> import Data.List
Prelude Data.List> list1 `intersect` list2
[(1,2),(2,3)]
关于list - 元组列表的交集 - Haskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34333432/