Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 如何使用scala从列表中删除重复值?_List_Scala - Fatal编程技术网

List 如何使用scala从列表中删除重复值?

List 如何使用scala从列表中删除重复值?,list,scala,List,Scala,我有以下清单 List(List (43673,38448,512,36398,1500,**BpEwv+EcDv3z**,58f39535-03b7-4e05-a2d8-3f5b424c8938), List(302750,759,512,759,3796,**BpEwv+EcDv3v**,069865df-30c3-48c3-bf02-79f2fcff7213), List(616278,1600,512,107418,15255,**BpEwv+EcDv3v**,b373b731-6f38

我有以下清单

List(List
(43673,38448,512,36398,1500,**BpEwv+EcDv3z**,58f39535-03b7-4e05-a2d8-3f5b424c8938),
List(302750,759,512,759,3796,**BpEwv+EcDv3v**,069865df-30c3-48c3-bf02-79f2fcff7213),
List(616278,1600,512,107418,15255,**BpEwv+EcDv3v**,b373b731-6f38-4559-808e-1c05fc06af00),
List(0,0,512,0,0,**BpEwv+EcDv3z**,24894b9f-9e30-4073-a538-186a312c670e)
)
我想从此列表中删除以粗体标记的重复值(所有元素的列表第6个索引)。元素的顺序是固定的

预期产出:

List(
List(43673,38448,512,36398,1500,BpEwv+EcDv3z,58f39535-03b7-4e05-a2d8-3f5b424c8938),
List(302750,759,512,759,3796,BpEwv+EcDv3v,069865df-30c3-48c3-bf02-79f2fcff7213))

如何使用scala从列表中删除重复值???

如果要删除所有
列表中出现的所有特定值,可以使用以下代码:

val lss = List(List(1,2,2), List(1,2,3,4,2))

lss map (_.filter(_ != 2))           //  List(List(1), List(1, 3, 4))
这将删除所有
列表中出现的
2

如果您想得到一个
列表
,您可以使用
flatMap

lss flatMap (_.filter(_ != 2))        // List(1, 1, 3, 4)

如果要删除所有
列表中出现的所有特定值,可以使用以下代码:

val lss = List(List(1,2,2), List(1,2,3,4,2))

lss map (_.filter(_ != 2))           //  List(List(1), List(1, 3, 4))
这将删除所有
列表中出现的
2

如果您想得到一个
列表
,您可以使用
flatMap

lss flatMap (_.filter(_ != 2))        // List(1, 1, 3, 4)

如果要删除所有
列表中出现的所有特定值,可以使用以下代码:

val lss = List(List(1,2,2), List(1,2,3,4,2))

lss map (_.filter(_ != 2))           //  List(List(1), List(1, 3, 4))
这将删除所有
列表中出现的
2

如果您想得到一个
列表
,您可以使用
flatMap

lss flatMap (_.filter(_ != 2))        // List(1, 1, 3, 4)

如果要删除所有
列表中出现的所有特定值,可以使用以下代码:

val lss = List(List(1,2,2), List(1,2,3,4,2))

lss map (_.filter(_ != 2))           //  List(List(1), List(1, 3, 4))
这将删除所有
列表中出现的
2

如果您想得到一个
列表
,您可以使用
flatMap

lss flatMap (_.filter(_ != 2))        // List(1, 1, 3, 4)

根据您的预期输出,您可以执行以下操作

scala> val a = List(List
 | (43673,38448,512,36398,1500,"BpEwv+EcDv3z","58f39535-03b7-4e05-a2d8-3f5b424c8938"),
 | List(302750,759,512,759,3796,"BpEwv+EcDv3v","069865df-30c3-48c3-bf02-79f2fcff7213"),
 | List(616278,1600,512,107418,15255,"BpEwv+EcDv3v","b373b731-6f38-4559-808e-1c05fc06af00"),
 | List(0,0,512,0,0,"BpEwv+EcDv3z","24894b9f-9e30-4073-a538-186a312c670e")
 | )
a: List[List[Any]] = List(List(43673, 38448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d8-3f5b424c8938), List(302750, 759, 512, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(616278, 1600, 512, 107418, 15255, BpEwv+EcDv3v, b373b731-6f38-4559-808e-1c05fc06af00), List(0, 0, 512, 0, 0, BpEwv+EcDv3z, 24894b9f-9e30-4073-a538-186a312c670e))

scala> a.groupBy(_(5)).mapValues(_(0)).map(_._2)
res0: scala.collection.immutable.Iterable[List[Any]] = List(List(302750, 759, 51
2, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(43673, 3
8448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d8-3f5b424c8938))
你也可以做一些阅读更好的事情

scala> a.groupBy(_(5)).mapValues(_(0)).values.toList
res6: List[List[Any]] = List(List(302750, 759, 512, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(43673, 38448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d83f5b424c8938))

根据您的预期输出,您可以执行以下操作

scala> val a = List(List
 | (43673,38448,512,36398,1500,"BpEwv+EcDv3z","58f39535-03b7-4e05-a2d8-3f5b424c8938"),
 | List(302750,759,512,759,3796,"BpEwv+EcDv3v","069865df-30c3-48c3-bf02-79f2fcff7213"),
 | List(616278,1600,512,107418,15255,"BpEwv+EcDv3v","b373b731-6f38-4559-808e-1c05fc06af00"),
 | List(0,0,512,0,0,"BpEwv+EcDv3z","24894b9f-9e30-4073-a538-186a312c670e")
 | )
a: List[List[Any]] = List(List(43673, 38448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d8-3f5b424c8938), List(302750, 759, 512, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(616278, 1600, 512, 107418, 15255, BpEwv+EcDv3v, b373b731-6f38-4559-808e-1c05fc06af00), List(0, 0, 512, 0, 0, BpEwv+EcDv3z, 24894b9f-9e30-4073-a538-186a312c670e))

scala> a.groupBy(_(5)).mapValues(_(0)).map(_._2)
res0: scala.collection.immutable.Iterable[List[Any]] = List(List(302750, 759, 51
2, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(43673, 3
8448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d8-3f5b424c8938))
你也可以做一些阅读更好的事情

scala> a.groupBy(_(5)).mapValues(_(0)).values.toList
res6: List[List[Any]] = List(List(302750, 759, 512, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(43673, 38448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d83f5b424c8938))

根据您的预期输出,您可以执行以下操作

scala> val a = List(List
 | (43673,38448,512,36398,1500,"BpEwv+EcDv3z","58f39535-03b7-4e05-a2d8-3f5b424c8938"),
 | List(302750,759,512,759,3796,"BpEwv+EcDv3v","069865df-30c3-48c3-bf02-79f2fcff7213"),
 | List(616278,1600,512,107418,15255,"BpEwv+EcDv3v","b373b731-6f38-4559-808e-1c05fc06af00"),
 | List(0,0,512,0,0,"BpEwv+EcDv3z","24894b9f-9e30-4073-a538-186a312c670e")
 | )
a: List[List[Any]] = List(List(43673, 38448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d8-3f5b424c8938), List(302750, 759, 512, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(616278, 1600, 512, 107418, 15255, BpEwv+EcDv3v, b373b731-6f38-4559-808e-1c05fc06af00), List(0, 0, 512, 0, 0, BpEwv+EcDv3z, 24894b9f-9e30-4073-a538-186a312c670e))

scala> a.groupBy(_(5)).mapValues(_(0)).map(_._2)
res0: scala.collection.immutable.Iterable[List[Any]] = List(List(302750, 759, 51
2, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(43673, 3
8448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d8-3f5b424c8938))
你也可以做一些阅读更好的事情

scala> a.groupBy(_(5)).mapValues(_(0)).values.toList
res6: List[List[Any]] = List(List(302750, 759, 512, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(43673, 38448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d83f5b424c8938))

根据您的预期输出,您可以执行以下操作

scala> val a = List(List
 | (43673,38448,512,36398,1500,"BpEwv+EcDv3z","58f39535-03b7-4e05-a2d8-3f5b424c8938"),
 | List(302750,759,512,759,3796,"BpEwv+EcDv3v","069865df-30c3-48c3-bf02-79f2fcff7213"),
 | List(616278,1600,512,107418,15255,"BpEwv+EcDv3v","b373b731-6f38-4559-808e-1c05fc06af00"),
 | List(0,0,512,0,0,"BpEwv+EcDv3z","24894b9f-9e30-4073-a538-186a312c670e")
 | )
a: List[List[Any]] = List(List(43673, 38448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d8-3f5b424c8938), List(302750, 759, 512, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(616278, 1600, 512, 107418, 15255, BpEwv+EcDv3v, b373b731-6f38-4559-808e-1c05fc06af00), List(0, 0, 512, 0, 0, BpEwv+EcDv3z, 24894b9f-9e30-4073-a538-186a312c670e))

scala> a.groupBy(_(5)).mapValues(_(0)).map(_._2)
res0: scala.collection.immutable.Iterable[List[Any]] = List(List(302750, 759, 51
2, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(43673, 3
8448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d8-3f5b424c8938))
你也可以做一些阅读更好的事情

scala> a.groupBy(_(5)).mapValues(_(0)).values.toList
res6: List[List[Any]] = List(List(302750, 759, 512, 759, 3796, BpEwv+EcDv3v, 069865df-30c3-48c3-bf02-79f2fcff7213), List(43673, 38448, 512, 36398, 1500, BpEwv+EcDv3z, 58f39535-03b7-4e05-a2d83f5b424c8938))

的副本。我希望它的工作稍微不同。在这里,我只想删除标记为**和蓝色的字段上的重复项,还有一个列表。您想删除重复项还是要删除所有出现的特定值?您能看到我的编辑吗???我有一个列表,如果任何特定的值被复制,我希望通过删除整个内部列表来获得列表。只是一个建议,给出像a、B这样的值,而不是BpEwv+EcDv3z和BpEwv+EcDv3v这样只有一个字符不同的值会很有用。它花了相当长的时间来理解你想要什么,甚至在你发布了预期的解决方案之后。重复的。我希望它的工作稍微不同。在这里,我只想删除标记为**和蓝色的字段上的重复项,还有一个列表。您想删除重复项还是要删除所有出现的特定值?您能看到我的编辑吗???我有一个列表,如果任何特定的值被复制,我希望通过删除整个内部列表来获得列表。只是一个建议,给出像a、B这样的值,而不是BpEwv+EcDv3z和BpEwv+EcDv3v这样只有一个字符不同的值会很有用。它花了相当长的时间来理解你想要什么,甚至在你发布了预期的解决方案之后。重复的。我希望它的工作稍微不同。在这里,我只想删除标记为**和蓝色的字段上的重复项,还有一个列表。您想删除重复项还是要删除所有出现的特定值?您能看到我的编辑吗???我有一个列表,如果任何特定的值被复制,我希望通过删除整个内部列表来获得列表。只是一个建议,给出像a、B这样的值,而不是BpEwv+EcDv3z和BpEwv+EcDv3v这样只有一个字符不同的值会很有用。它花了相当长的时间来理解你想要什么,甚至在你发布了预期的解决方案之后。重复的。我希望它的工作稍微不同。在这里,我只想删除标记为**和蓝色的字段上的重复项,还有一个列表。您想删除重复项还是要删除所有出现的特定值?您能看到我的编辑吗???我有一个列表,如果任何特定的值被复制,我希望通过删除整个内部列表来获得列表。只是一个建议,给出像a、B这样的值,而不是BpEwv+EcDv3z和BpEwv+EcDv3v这样只有一个字符不同的值会很有用。即使在您发布了预期的解决方案之后,也需要相当长的时间才能理解您想要什么。