我想写一个函数,它接受一个列表并返回lis中重复元素总数的计数

2024-09-30 06:25:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过这个,不知什么原因,当它打印h时,它不打印,所以我想如果它计算出不打印的数字,然后除以2,就会得到重复的数字,但是我不能在这里使用count函数

a= [1,4,"hii",2,4,"hello","hii"]
def duplicate(L):
    li=[]
    lii=[]
    h=""
    for i in L:
        y= L.count(i)
        if y>1:
            h=y
            print h
            print h.count(None)

duplicate(a)

Tags: 函数innonehelloforifdefcount
3条回答

我找到了一个答案

a= [1,4,"hii",2,4,"hello",7,"hii"]
def duplicate(L):
    li=[]
    for i in L:
        y= L.count(i)
        if y>1:
            li.append(i)
    print len(li)/2

duplicate(a)

使用Counter容器:

from collections import Counter
c = Counter(['a', 'b', 'a'])

c现在是一个包含以下数据的字典:Counter({'a': 2, 'b': 1})

如果要获取包含所有重复元素(无重复)的列表,可以执行以下操作:

duplicates = filter(lambda k: c[k] > 1, c.iterkeys())

如果只想计算重复项,则可以设置

duplicates_len = len(duplicates)

您可以使用set获得唯一元素的计数,然后比较大小—类似于:

def duplicates(l):
    uniques = set(l)
    return len(l) - len(uniques)

相关问题 更多 >

    热门问题