删除列表中的重复元素
2022-11-28阅读(216)
问:python删除列表中的重复值
- 答:答: 主要总结了以下三种方法进行列表中的重复值删除。具体代码如图所示。
其中最简单的就是方法一和方法三了,因为他们只需要进行相关函数的调用。
在方法一中,借助集合set中元素不能重复的特性,先将list转为set,然后再将set转回list,即可除重复元素;
在方法三中,借助 Numpy中的 Unique()方法也可将重复的元素去除,同时注意其元素返回类型为ndarray,因此也需要将其转为list。
同学们如果对方法二感兴趣的话,也可以进行动手复现,它相比于方法一和三会更难一点,但是更有利于锻炼代码思维。
问:如何去除List集合中重复的元素
- 答:最好的办法是用Set,因为Set里面存放的数据是不重复的。
如果你不想用Set,那还可以向下面这样处理。
List list_tmp = new ArrayList(); //建立一个用于临时存放不重复list元素的List集合。
for(Object obj:list){
//可以根据需要,在这里加上强制转型。
//如list里面存放的是一个User对象,那么加上User u = (User) obj;
if(!list_tmp.contains(obj)){ //注意contains方法是通过equals方法进行比较的所以你要根据你自己的需要看是否需要重写list对象里面的equals方法。
list_tmp.add(obj);//如果上面加了强制转型,这里需要写list_tmp.add(u);
}
} - 答:【参考】
1、通过循环进行删除
public static void removeDuplicate(List list) {
for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {
for ( int j = list.size() - 1 ; j > i; j -- ) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
System.out.println(list);
}
2、通过HashSet删除
public static void removeDuplicate(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list);
}
问:c#如何删除list中重复的元素
- 答:删除list中重复的元素:
方法:使用for循环嵌套,使用List[索引]去与每一个元素进行比较,相等的话,removeat掉
或许有他人会说用foreach也可以实现,实际中却不是这样,因为比较过程中删除掉了list集合中数据时,进行foreach会报错误