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)
一种简单的方法是:
def duplicate_count(s):
return len([x for x in set(s) if s.count(x) > 1])
Run Code Online (Sandbox Code Playgroud)
这一个会更简洁:
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)