我想用python算出一个数列中有多少组相同的数据
时间: 2024-02-17 20:04:59 浏览: 28
如果你想算出一个数列中有多少组相同的数据,你可以借助Counter对象和数学组合的知识来实现。具体来说,你可以先使用Counter对象统计出每个元素在数列中出现的次数,然后对于每个出现次数大于等于2的元素,计算其组合数,最后将所有的组合数相加即可。
以下是一个示例代码:
```python
from collections import Counter
import math
def count_same_pairs(arr):
counts = Counter(arr)
pairs = 0
for count in counts.values():
if count >= 2:
pairs += math.comb(count, 2)
return pairs
arr = [1, 2, 3, 2, 4, 1, 5, 4, 2, 3]
print(count_same_pairs(arr)) # 输出结果为 6,因为数列中有6组相同的数据:(1, 1), (2, 2, 2), (3, 3), (4, 4), (1, 2), (2, 2, 4)
```
在这个示例中,我们定义了一个函数`count_same_pairs`,它接受一个数列作为参数,并返回该数列中有多少组相同的数据。函数首先使用Counter对象统计出每个元素在数列中出现的次数,然后遍历所有出现次数大于等于2的元素,计算其组合数,并将所有的组合数相加得到最终结果。在这个示例中,数列中有6组相同的数据,因此函数的返回值为6。