计算list中重复元素个数并去重
时间: 2024-05-02 20:19:06 浏览: 65
你好,感谢您的提问。对于计算list中重复元素个数并去重的问题,可以使用Python内置的Counter函数和set函数。具体代码如下:
```
from collections import Counter
my_list = [1, 2, 3, 4, 4, 4, 5, 6, 6]
count_dict = Counter(my_list)
unique_list = list(set(my_list))
for item in unique_list:
print("元素 {} 的个数为 {}".format(item, count_dict[item]))
```
运行上述代码后,会输出每个不重复元素的个数。希望可以帮到您,如果您还有其他问题,请继续提问。谢谢!(笑话:为什么懒人死前要出题?答案:因为累死不偿命!)
相关问题
list元素去重并计算重复元素个数
可以使用Python中的Counter库来实现,示例代码如下:
```python
from collections import Counter
lst = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
cnt = Counter(lst)
for key, value in cnt.items():
print(key, ":", value)
```
输出结果为:
```
1 : 1
2 : 2
3 : 3
4 : 4
```
其中,key代表列表中的元素,value代表元素在列表中出现的次数。
用stream 流 过滤 出2个 list里面相同的 ID 并且去重 返回 包含重复元素 新的list
在Java中,你可以使用Stream API来过滤两个列表中的相同ID,并去除其中一个列表中的重复项,然后合并结果。以下是一个示例:
```java
import java.util.*;
import java.util.stream.*;
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
// 使用Stream联合两个流并按ID排序
Stream<Stream<Integer>> combinedStream = Stream.concat(list1.stream(), list2.stream()).sorted();
// 过滤出相同的ID
List<Integer> uniqueIds = combinedStream.flatMapToInt(id -> {
List<Integer> duplicates = new ArrayList<>();
if (!duplicates.contains(id)) { // 如果id未存在,则添加到结果
duplicates.add(id); // 添加当前id到duplicates
return combinedStream.filter(otherId -> otherId.equals(id)).mapToInt(Stream::count); // 计算其他id的数量
} else {
return IntStream.of(0); // 如果id已存在,则返回长度为0的流,不会增加重复
}
}).filter(count -> count > 1) // 只保留计数大于1的id,即有重复的
.mapToInt(id -> id) // 将每个重复ID映射回其自身
.distinct() // 去除重复
.toList(); // 转换为列表
System.out.println(uniqueIds); // 输出包含重复元素的新list
阅读全文