Python - 在字符串文本中查找重复项的数量

M. *_*bra 5 python string text count duplicates

我想编写一个函数来返回在输入字符串中出现多次的字母字符和数字的数量。

示例示例:“aabbccd”应返回 3,因为“a”、“b”和“c”都有重复项。与“aaabbccd”相同,也将返回 3。

这是我所做的,但似乎我的代码有问题。它适用于某些情况,但显然不适用于其他情况。

def duplicate_count(text):
  count=0
  for i in range(len(text)-1):
      for j in range(i+1,len(text)):
          if text[i]==text[j]:
              count+=1
              break
      break
  return count
Run Code Online (Sandbox Code Playgroud)

Ant*_*aud 5

一种简单的方法是:

def duplicate_count(s):
    return len([x for x in set(s) if s.count(x) > 1])
Run Code Online (Sandbox Code Playgroud)


Bub*_*Gut 2

这一个会更简洁:

import numpy as np

def duplicate_count(text):

    #elem is an array of the unique elements in a string
    #and count is its corresponding frequency
    elem, count = np.unique(tuple(text), return_counts=True)

    return np.sum(count>1)
Run Code Online (Sandbox Code Playgroud)