PYTHON-去除重复元素4-并统计重复次数

一、怎么得到列表中每个元素的重复次数:

方法: 可以得到列表中元素出现的次数

#列表名.count(列表中元素)
a1 = [1,2,2,2,2,3,3,3,4,4,4,4]
print(a1.count(2))
#output:4

鉴于此:我们可以得到每个元素的出现次数

a1 = [1,2,2,2,2,3,3,3,4,4,4,4]
a_count = []
for i in a1:
    a_count.append(a1.count(i))

print(a_count)

#[1, 4, 4, 4, 4, 3, 3, 3, 4, 4, 4, 4]

二、有没有一种就是返回不重复元素和次数的方法呢?比如:{(1:1),(2:4),(3,3),(4,4)}的方法?

答案是有的,但是顺序不是我们要的顺序。这不就是我们要的结果吗?只是顺序不一样,无所谓吧!

方法:

collections.Counter(列表)
>>> from collections import Counter
>>> Counter([1,2,2,2,2,3,3,3,4,4,4,4])
Counter({2: 4, 4: 4, 3: 3, 1: 1})
>>> type(Counter([1,2,2,2,2,3,3,3,4,4,4,4]))
<class 'collections.Counter'>

三、我就想要不重复也要排好顺序的?来,有!

方法:

#将元素与其对应的重复次数合并后顺序去除重复元素
#顺序的方法:回列表元组
a1 = [1,2,2,2,2,3,3,3,4,4,4,4]
a_count = []
for i in a1:
    a_count.append(a1.count(i))

#将元素与其对应的重复次数合并
l_sum = zip(a1,a_count)

#最后去除重复元素
a1_unique = []
for (i,j) in l_sum:
    if (i,j) not in a1_unique:
        a1_unique.append((i,j))

print(a1_unique)
#output:[(1, 1), (2, 4), (3, 3), (4, 4)]

参考代码:

https://www.jb51.net/article/53911.htm

https://www.cnblogs.com/hycstar/p/9345751.html

猜你喜欢

转载自www.cnblogs.com/xiao-yu-/p/12701115.html