[Introduction to Algorithms and Data Structures] [Day3] Several methods for directly replacing elements in the list with a minimum number of lines of code


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")

Insert picture description here

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")

Insert picture description here

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")

Insert picture description here

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")

Insert picture description here

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'))

Insert picture description here

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")

Insert picture description here

Published 42 original articles · praised 28 · visits 4961

Guess you like

Origin blog.csdn.net/KaelCui/article/details/105329259