【问题标题】:find duplicate count in a list在列表中查找重复计数
【发布时间】:2022-11-13 01:45:09
【问题描述】:

我想出了这个逻辑来计算重复 1 输入列表长度 2 输入列表 3 在列表中搜索从零到最后一个索引的值递增计数器。 我收到错误任何人都可以帮助解决它,我知道我的这种不准确的方法可以帮助我

n = int(input())
l1=[]
for i in range(n):
    l1.append(input())
print(l1)    
count1=0
count2=0
count3=0
count4=0    
for j in range(n):
       if 1 in l1[0,n-1]:
            count1 =count1+1
       elif 2 in l1(0,n-1):   
            count2=count2+1
       elif 3 in l1(0,n-1):
           count3= count3+1
       elif 4 in l1(0,n-1):
            count4=count4+1          
print(count1)  

输入 4 1 1 2 3 4 输出应该是 2

【问题讨论】:

  • 您可以使用计数方法:len(set([i for i in l if l.count(i)>=2]))
  • “我收到错误任何人都可以帮助解决它”: 如果您不告诉我们错误是什么,则不会!请参阅How to Askquestion checklist - 你应该edit 你的问题包括满的错误回溯,它告诉我们错误是什么,发生在哪里,所以我们不必猜测
  • l1.append(input()) 输入返回一个字符串,所以l1 列表将只包含字符串,所以if 1 in l1[0,n-1] 永远不会为真。
  • @JohnGordon 谢谢我今天的测试失败了:(,有没有最佳的方法来计算列表中的重复项

标签: python list linear-search


【解决方案1】:

只需使用原始列表中的set()remove the duplicates,然后将原始列表的长度减去新列表的长度:

l2 = list(set(l1))
count = len(l1) - len(l2)

我不认为这是最好的方法,但它是最短和最直观的方法。

【讨论】:

  • 为什么这不是最佳的方法呢?并不是说集合不需要转换回列表。 len(set(l1)) 为您提供集合中的元素数量
  • @PranavHosangadi 我认为set() 在堆中执行多个内存分配和复制操作,不是吗?
【解决方案2】:

列表中有一个预先构建的函数来计算元素

data = [1,2,3,4,1,4]
print("Count of 1 =", data.count(1))
print("Count of 2 =", data.count(2))
print("Count of 3 =", data.count(3))
print("Count of 4 =", data.count(4))

【讨论】:

  • 这不是OP想要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2021-10-19
  • 2013-02-21
  • 2013-11-17
  • 2017-05-17
相关资源
最近更新 更多