如何使用scala组合两个列表的元素?
我有以下清单:如何使用scala组合两个列表的元素?,scala,Scala,我有以下清单: val list1 = List( (List("pune"),"myname1","myId1", "myAdd1"), (List("pune"),"myname2","myId2", "myAdd1"), (List("pune"),"myname3","myId3", "myAdd3"), (List("mumbai"),"myname2","myId1", "myAdd2") ) val list2 = List( ("pune
val list1 = List(
(List("pune"),"myname1","myId1", "myAdd1"),
(List("pune"),"myname2","myId2", "myAdd1"),
(List("pune"),"myname3","myId3", "myAdd3"),
(List("mumbai"),"myname2","myId1", "myAdd2")
)
val list2 = List(
("pune","myAdd1"),
("mumbai","myAdd2")
)
我想要以下输出-
List(
(List(pune),"myname1","myId1", "myAdd1"),
(List(pune),"myname2","myId2", "myAdd1"),
(List("mumbai"),"myname2","myId1", "myAdd2")
)
如何使用scala获得上述输出?我仍然不确定您想要什么,但我认为应该使用
list2
按元组中的第一个和第四个字段过滤list1
val list1 = List(
(List("a1"), "b1", "c1", "d1"),
(List("a1"), "b2", "c2", "d1"),
(List("a1"), "b3", "c3", "d3"),
(List("a2"), "b2", "c1", "d2")
)
val list2 = List(
("a1", "d1"),
("a2", "d2")
)
list1.filter({
case (a::Nil, b, c, d) =>
list2.contains((a, d))
case _ =>
false
})
/*
Result:
List(
(List(a1),b1,c1,d1),
(List(a1),b2,c2,d1),
(List(a2),b2,c1,d2)
)
*/
但实际上,这只是你之前问过的几个问题的一个小变化。我希望你能从其他答案中学到足够多的东西,从而能够自己解决这类问题。我不认为仅此示例就足以描述你想要编码的逻辑。你能再解释一下吗?你真的是指列表2中的小写“add”吗?保罗:我更正了。请看我的编辑
val list1 = List(
(List("pune"),"myname1","myId1", "myAdd1"),
(List("pune"),"myname2","myId2", "myAdd1"),
(List("pune"),"myname3","myId3", "myAdd3"),
(List("mumbai"),"myname2","myId1", "myAdd2"))
val list2 = List(("pune","myAdd1"),("mumbai","myAdd2"))
list1.filter(x=> list2 contains ((x._1(0), x._4)))
// List((List(pune),myname1,myId1,myAdd1),
// (List(pune),myname2,myId2,myAdd1),
// (List(mumbai),myname2,myId1,myAdd2))