Find the number of repeated strings (not case sensitive)
Test data:
abcD1-> 0
aabBcde-> 2
indivisibility-> 1
Method 1:
def duplicate_count(text):
str = text.lower()
if text.isalnum() is True:
WordCount = {}
for num in str:
if num in WordCount:
WordCount[num] += 1
else:
WordCount[num] = 1
print(text,'-->',len([i for i in WordCount if WordCount[i] >1]))
else:
print(text,"\nError:Text contains something other letters and numbers")
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")
duplicate_count("2#kkk")
Method 2:
def duplicate_count(text):
if text.isalnum() is True:
print(text,'-->',len(set(c for c in text.lower() if text.lower().count(c)>1)))
else:
print(text,"\nError:Text contains something other letters and numbers")
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")
duplicate_count("2#kkk")
Method 3:
def duplicate_count(text):
if text.isalnum() is True:
word_count = {}
text_lower = text.lower()
for i in text_lower:
if text_lower.count(i) > 1:
word_count[i] = text_lower.count(i)
print(text,"-->",len(word_count))
else:
print(text,"\nError:Text contains something other numbers and letters")
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")
duplicate_count("2#kkk")
Method 4:
import pandas as pd
def duplicate_count(text):
list = []
for c in text:
list.append(c.lower())
df = pd.DataFrame(list,columns = ['1'])
count = 0
for i in df.groupby('1').size():
if (i > 1):
count += 1
print(count)
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")
duplicate_count("2#kkk")
Method 5:
def duplicate_count(text):
text_set = set()
[text_set.add(s) for s in text.upper() if text.upper().count(s) > 1]
return len(text_set)
print(duplicate_count('abcde'))
print(duplicate_count('aabBcde'))
print(duplicate_count('indivisibility'))
Method 6:
'''
dict.setdefault()方法接收两个参数,
第一个参数是健的名称,第二个参数是默认值。
假如字典中不存在给定的键,则返回参数中提供
的默认值;反之,则返回字典中保存的值
'''
from collections import defaultdict
def duplicate_count(text):
WordCount = {}
for num in text.lower():
WordCount.setdefault(num, 0)
WordCount[num] += 1
print(text,'-->',len([i for i in WordCount if WordCount[i] >1]))
duplicate_count("abcD1")
duplicate_count("aabBcde")
duplicate_count("indivisibility")