【问题标题】:Counting Duplicates in python. Why should we take only set and not list or dict?在 python 中计算重复项。为什么我们应该只取 set 而不是 list 或 dict?
【发布时间】:2021-07-13 17:37:09
【问题描述】:
def duplicate_count(text):
  text = text.upper()
  duplicate_count = 0
  for i in set(text):
      if text.count(i)>1:
          duplicate_count +=1

  return duplicate_count        
     

在 for 循环中为什么只使用 set 而不是 list 或 dict?在 for 循环中,集合(文本)中的 i 会有重复项吗?

【问题讨论】:

  • 不,你不会有重复的,这就是使用set 的意义所在。您是否尝试将set 替换为dictlist?您会注意到它不起作用或给出错误的结果。这就是使用set 的原因。
  • 你能帮我解决这个问题吗 text.count(i) 。这是否意味着文本中的值对 i 中的每次迭代都计数并匹配相似的字符/整数?

标签: python python-3.x list dictionary set


【解决方案1】:

看这里。

print(set([1,2,2]))

给我们{1,2}。 基本上在代码中,他们遍历给定的可迭代对象,并为每个数字找到它重复的次数。但是假设你有 [2,2]。那么数字 2 重复了两次。我们将通过两次将duplicateCount 增加一次两次,但我们希望它增加一次。所以 set 在这种情况下效果最好。

【讨论】:

  • 你能帮我解决这个问题吗 text.count(i) 。这是否意味着文本中的值对 i 中的每次迭代都计数并匹配相似的字符/整数?
  • 是的,文本是我们的设置。计数函数应用于 [1,2,2]。假设我们有 text.count(2) 它会给我们2,因为很明显列表中有两个 2。
【解决方案2】:

在集合中,所有重复项都被删除。

集合是不同对象的无序集合。

获取唯一项目集合的常用方法是使用集合

例如,

l=[1,2,3,4,4,4,5,5]
l1=set(l)
print(l1)

在这里我们将得到输出

{1, 2, 3, 4, 5}

集合通常用于从列表中获取唯一值。

有关从列表中删除重复项的不同方法的更多详细信息,请参阅-

https://www.geeksforgeeks.org/python-ways-to-remove-duplicates-from-list/

【讨论】:

  • 你能帮我解决这个问题吗 text.count(i) 。这是否意味着文本中的值对 i 中的每次迭代都计数并匹配相似的字符/整数?
  • text.count(i) 计算文本中 'i' 的出现次数,如果 count 大于 1,则表示重复的 duplicate_count 增加 1
猜你喜欢
  • 2015-10-22
  • 1970-01-01
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 2019-12-18
  • 2015-12-29
  • 1970-01-01
相关资源
最近更新 更多